FHIR Chat · Package rework · conformance

Stream: conformance

Topic: Package rework


view this post on Zulip Grahame Grieve (Jun 11 2019 at 18:43):

Follow up to last night @Martijn Harthoorn @Michel Rutten removing narratives from r4 package reduces size from 16615 kb to 13283 kb

view this post on Zulip Grahame Grieve (Jun 11 2019 at 18:50):

removing exmples and data element definitions reduces the package size to 11639 kb, and the overall resource count from 5535 to 4603 files

view this post on Zulip Michel Rutten (Jun 11 2019 at 18:51):

That is a significant decrease in size

view this post on Zulip Grahame Grieve (Jun 11 2019 at 18:54):

so what does that imply? The obvious thing to do is

hl7.fhir.core.r4
hl7.fhir.core.r4.examples

Though that means that .examples is not a subset of the hl7.fhir.core.r4... which isn't what the current spec says.

view this post on Zulip Grahame Grieve (Jun 11 2019 at 20:23):

do we need to do anything more

view this post on Zulip Jim Steel (Jun 11 2019 at 20:23):

Has there been a check that all of the terminology resources are still used/necessary?

view this post on Zulip Jim Steel (Jun 11 2019 at 20:23):

(Not basing this on knowledge, just a hunch)

view this post on Zulip Grahame Grieve (Jun 11 2019 at 20:26):

how would you decide what 'not necessary' means? Forge doesn't use any of them... the rest of us might use any of them

view this post on Zulip Jim Steel (Jun 11 2019 at 20:26):

Yeah, its a good question. The ones I worry about particularly are the ones the spec used to use but doesn't any longer

view this post on Zulip Grahame Grieve (Jun 11 2019 at 20:27):

which ones?

view this post on Zulip Jim Steel (Jun 11 2019 at 20:28):

If I knew that it'd already be a ticket :)

view this post on Zulip Grahame Grieve (Jun 18 2019 at 06:03):

@Martijn Harthoorn can we close this up. Open issues:
- comments about splitting core package up
- agreeing format for the cache file

view this post on Zulip Martijn Harthoorn (Jun 20 2019 at 13:17):

@Grahame Grieve , although I believe from a technical perspective I see some good reasons to split up the core, without circular references. I also recognize that it makes it too hard to explain for non technical users. So my guess is that we should just give it a go. Your numbers look a lot better to work with.

view this post on Zulip Martijn Harthoorn (Jun 20 2019 at 13:18):

Can you give a summary for the cache file once more? Or do you have a link?

view this post on Zulip Grahame Grieve (Jun 20 2019 at 19:18):

give a summary for the cache file

not sure what you mean?

view this post on Zulip Martijn Harthoorn (Jun 21 2019 at 14:44):

I remember we discussed the format, and that in itself there were no issues from our side, but I can't remember the specifics of the format, that you showed.

view this post on Zulip Grahame Grieve (Jun 21 2019 at 20:11):

ok. I want to record the date that the package was installed into the cache, and also record a canonical URL list - a mapping from canonical URL to resource id

view this post on Zulip Grahame Grieve (Jun 21 2019 at 20:16):

I currently create a file cache.ini that looks like:

[Package]
install = 14/04/2019 7:47:35 AM

[Profiles]
http://hl7.org/fhir/StructureDefinition/sdc-valueset = ValueSet

view this post on Zulip Grahame Grieve (Jun 21 2019 at 20:17):

you said that a cache file like this was of interest, and it would be good for us to agree about this. You also said that you might want a different format...

view this post on Zulip Grahame Grieve (Jun 23 2019 at 21:16):

also. this is the right arrangement:

  • hl7.fhir.r4.core
  • hl7.fhir.r4.examples

view this post on Zulip Martijn Harthoorn (Jun 24 2019 at 08:17):

Yes.

view this post on Zulip Martijn Harthoorn (Jun 24 2019 at 08:19):

Regarding the cache.ini, I will discuss it today with @Ewout Kramer and @Michel Rutten , since they have a use case for indexes on other fields. So I think the best format I would probably prefer a .json format, since it's more flexible to add other index information.

view this post on Zulip Grahame Grieve (Jun 24 2019 at 10:39):

well, ok... but what would it look like?

view this post on Zulip Martijn Harthoorn (Jun 24 2019 at 15:11):

I had a short discussion about it with Ewout and we come to the conclusion that there are no stringent needs, other than indexing the canonicals to files for now.

view this post on Zulip Martijn Harthoorn (Jun 24 2019 at 15:11):

The format we use now is this json format:

view this post on Zulip Martijn Harthoorn (Jun 24 2019 at 15:11):

{
  "canonicals": {
    "http://hl7.org/fhir/StructureDefinition/actualgroup": "StructureDefinition-actualgroup.json",
    "http://hl7.org/fhir/StructureDefinition/bmi": "StructureDefinition-bmi.json",
    "http://hl7.org/fhir/StructureDefinition/bodyheight": "StructureDefinition-bodyheight.json",
    "http://hl7.org/fhir/StructureDefinition/bodytemp": "StructureDefinition-bodytemp.json",
    "http://hl7.org/fhir/StructureDefinition/bodyweight": "StructureDefinition-bodyweight.json",
    "http://hl7.org/fhir/StructureDefinition/bp": "StructureDefinition-bp.json",
    ...
  }
}

view this post on Zulip Grahame Grieve (Jun 24 2019 at 20:46):

ok can we add date?

view this post on Zulip Grahame Grieve (Jun 24 2019 at 20:47):

{
  "date" : "2019-06-26T06:47:00+10:00",
  "canonicals": {
    "http://hl7.org/fhir/StructureDefinition/actualgroup": "StructureDefinition-actualgroup.json",
    ...
  }
}

view this post on Zulip Grahame Grieve (Jun 24 2019 at 20:47):

sole use is display to a user that X has been in the package cache for d duration

view this post on Zulip Grahame Grieve (Jun 25 2019 at 08:35):

.. and when we can we start talking about a server API? I have a place in the tools for posting an external package to registry.fhir.org now....

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 08:45):

Yes. I am fine with adding the date.

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 08:46):

I 'll start doing that on our side too.

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 08:54):

Shall we call it "_index.json"?

view this post on Zulip Vadim Peretokin (Jun 25 2019 at 10:06):

I'd prefer .index.json if you want to indicate it's an infrastructure file. Underscores are a C# notion, not used in file naming

view this post on Zulip Grahame Grieve (Jun 25 2019 at 10:55):

that's just to make it hard to create the file manually on windows ;-)

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:31):

Windows is doing much better in that respect, these days.

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:32):

I am good with either.

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:32):

explorer still won't let you create them manually

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:33):

but I'm ok with .index.json

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:34):

Ok. Let's do that. The people that want to create a canonical index file manually, are probably sufficiently equiped to navigate around explorer. :)

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:34):

nobody should create them manally.

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:34):

exactly.

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:36):

ok time to update this page - http://wiki.hl7.org/index.php?title=FHIR_Package_Cache - do you want to do that, or me?

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:36):

and can we also agree about packages.ini as wel

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:37):

What is packages.ini?

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:45):

"cache: version = 2 - indicates that the contents of the package cache conform to this specification" -- I am not sure what that means.

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:45):

Is that the FHIR specification? Or the package cache specification?

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:46):

package cache specification

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:48):

From a puristic perspecfive I understand the usecase. But I don't think I have the time to write tooling that understands more than version of the global package cache.

view this post on Zulip Grahame Grieve (Jun 25 2019 at 13:48):

oh no neither do I. I just wipe the cache when the version is wrong and pretend it's empty. It's a safety thing

view this post on Zulip Martijn Harthoorn (Jun 25 2019 at 13:49):

:)

view this post on Zulip Grahame Grieve (Jun 26 2019 at 09:45):

ok draft new packages here:

view this post on Zulip Grahame Grieve (Jun 26 2019 at 09:46):

https://github.com/FHIR/packages/tree/master/core

view this post on Zulip Grahame Grieve (Jun 26 2019 at 09:47):

please review, particularly the following:
- the values in the various package.json files
- especially version
- I don't know what to do with the semi-examples for code system etc - sometimes they are purely example, sometimes they are more

view this post on Zulip Grahame Grieve (Jun 26 2019 at 09:48):

I'm not sure whether it's useful to have a hl7.fhir.rX which includes... core + examples. I guess. expansions and elements are both special purpose packages, and expansions has duplicate urls

view this post on Zulip Grahame Grieve (Jun 27 2019 at 13:08):

updated. core is parallel to examples;; there's no valid combination of the packages. they each haev their own purpose.

view this post on Zulip Grahame Grieve (Jun 27 2019 at 13:08):

version is still an open topic

view this post on Zulip Martijn Harthoorn (Jun 28 2019 at 08:35):

You mean the relation between the FHIR version and the package version, right?

view this post on Zulip Martijn Harthoorn (Jun 28 2019 at 09:06):

There are some packages that refer to hl7.fhir.core instead of hl7.fhir.core.r2 / r3 / r4.
For example:
https://github.com/FHIR/packages/blob/master/fhir.test.data/4.0.0/package/package.json

view this post on Zulip Grahame Grieve (Jun 29 2019 at 03:22):

I’ll have to rework all of them. I haven’t done that yet. My question is what the package version should be for the core packages

view this post on Zulip Grahame Grieve (Jul 05 2019 at 00:40):

ping...

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 11:04):

Good question. :)

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 11:23):

I had a brief discussion with Ewout and his recollection is that this was decided in an evening session at Montreal, between you Ewout, Josh, and others, with the following conclusion:
- MAJOR/MINOR follow the HL7 FHIR standard version
- PATCH is for updates to the package itself that are not caused by the standards process.

view this post on Zulip Grahame Grieve (Jul 05 2019 at 11:24):

well, that's what we're doing with the IG packages. And that's also what we said we'd do with the core packages too, but it isn't clear to me that it's still the right decision after we decide to include the major version in the package id too

view this post on Zulip Grahame Grieve (Jul 05 2019 at 11:24):

but no one has offered any alternative...

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 11:25):

Yeah. And I think it will be confusing to some people when you release r3. version 1.0.0 :)

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 11:25):

And everything besides 3 (FHIR version) and 1.0 - the normal start is even crazier.

view this post on Zulip Grahame Grieve (Jul 05 2019 at 11:35):

ok that means that the packages found at https://github.com/FHIR/packages are all good to go (except for old_core which are no longer relevant and I'll delete once we pull the trigger on this change...)

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 11:45):

So that's the stuff under hl7.fhir.rX, right?
https://github.com/FHIR/packages/tree/master/hl7.fhir.rX

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 14:48):

I uploaded it to our staging area, and was able to create and consume the package.

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 14:48):

(I used hl7.fhir.r3.core)

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 14:48):

I could validate resources with it in Torinox.

view this post on Zulip Martijn Harthoorn (Jul 05 2019 at 14:48):

So I think we are ready too.

view this post on Zulip Grahame Grieve (Jul 05 2019 at 20:52):

good

view this post on Zulip Grahame Grieve (Jul 05 2019 at 21:09):

ok. http://wiki.hl7.org/index.php?title=FHIR_Package_Cache updated. please check

view this post on Zulip Grahame Grieve (Jul 05 2019 at 21:11):

also, we still need to work on a package API....

view this post on Zulip Grahame Grieve (Jul 06 2019 at 22:22):

ah no - at DevDays @nicola (RIO/SS) proposed to use subdirectories for types, so that ValueSet XX would be package/ValueSet/XX.json instead of package/ValueSet-XX.json. We sort of informally agreed to that change, but it's pretty significant , so let's reconfirm here in an audited way

view this post on Zulip Martijn Harthoorn (Jul 08 2019 at 09:43):

There are two parts to this:
1. Should we allow subfolders in the "package" folder? -- I think the answer is yes. No problem.
2. Should we make it mandatory to have resource type in the corresponding sub folder with the type name?
It's easier for indexing and searching, but I am afraid we are pinning ourselves down too much. And are we then going to create 100 sub folders with one or two examples in each? Maybe make it a 'SHOULD'...

view this post on Zulip Grahame Grieve (Jul 08 2019 at 19:52):

I don't want to make it a choice. One way or the other. It is a problem to have 100 sub-folders?

view this post on Zulip Martijn Harthoorn (Jul 09 2019 at 08:37):

There is no added value in making it mandatory. Only burden and lack of choice.

view this post on Zulip Martijn Harthoorn (Jul 09 2019 at 08:38):

I am fine with (optionally) allowing sub folders - npm already has that.

view this post on Zulip Grahame Grieve (Jul 10 2019 at 21:30):

why would we require package consumers to check both package and package subfolders?

view this post on Zulip Martijn Harthoorn (Jul 11 2019 at 11:27):

Are saying you don't want to allow sub folders?

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:07):

well, I don't see the point of allowing resources to be either in the package folder, or a sub-folder of that. I don't care whether there is sub-folders, only whether tools are expected to find resources in sub-folders or not.

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:07):

@nicola (RIO/SS) suggested that it would make loading faster, but of course if it can be either way, it would make loading slower

view this post on Zulip nicola (RIO/SS) (Jul 11 2019 at 12:09):

this is not about speed, this is about aesthetic

view this post on Zulip nicola (RIO/SS) (Jul 11 2019 at 12:12):

i think, developers will like to have all search params in a separate folder

view this post on Zulip nicola (RIO/SS) (Jul 11 2019 at 12:13):

if you are talking about examples, i would put them under /examples folder ;)

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:19):

well, I don't care about that so much for tooling purposes...

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:19):

but I stick to my position: this should not be a choice: we should say, one way or the other

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:19):

I don't really care which way personally

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:19):

hmm. that one is tricky. We don't actually have a clear differentiation between 'examples' and not-examples.

view this post on Zulip Grahame Grieve (Jul 11 2019 at 12:19):

I have split into 2 packages - 'examples' and 'core'. But they actually overlap - examples contains everything in core, but with narrative. Core has no narrative, and just conformance and terminology resources - whether labelled examples or not, since some of the examples are real things anyway.

view this post on Zulip Martijn Harthoorn (Jul 16 2019 at 14:04):

  • I am ok with not allowing subfolders
  • I am ok with allowing sub folders
  • I feed bad about forcing subfolders.

view this post on Zulip Grahame Grieve (Jul 24 2019 at 21:59):

we need to close this out. No subfolders. If anyone objects, I guess I'll refer it to FHIR-I

view this post on Zulip Martijn Harthoorn (Jul 26 2019 at 14:12):

Ok.


Last updated: Apr 12 2022 at 19:14 UTC