HL7 / fhir-ig-publisher

Source code for the IG publisher
Apache License 2.0
70 stars 57 forks source link

Incorrect information message about definition not found for EDQM code system and use of property in value set definition #885

Open rhausam opened 7 months ago

rhausam commented 7 months ago

Multiple instances of the following information messages are being returned for multiple instances referencing the Medicine Dose Form EDQM and Medicine Route of Administration EDQM value sets in the pharm-quality IG:

INFORMATION: ValueSet/vs-medicine-doseform: ValueSet.compose.include[0].filter[1]: No definition can be found for the system http://standardterms.edqm.eu, and the property 'class' is not a generally known property, so the property might not be valid, or understood by the terminology ecosystem. In case its useful, the list of generally known properties for all systems is {2}

INFORMATION: ValueSet/vs-medicine-doseform: ValueSet.compose.include[0].filter[2]: No definition can be found for the system http://standardterms.edqm.eu, and the property 'domain' is not a generally known property, so the property might not be valid, or understood by the terminology ecosystem. In case its useful, the list of generally known properties for all systems is {2}

This message appears to be (erroneously) originating in the IG Publisher, as the EDQM code system is fully supported on tx.fhir.org, which is able to correctly perform the $expand and $validate-code operations on these value sets as currently defined (using the class and domain properties) without any issues. See these examples:

Request:

POST http://tx.fhir.org/r4/CodeSystem/$validate-code? HTTP/1.0 Accept-Charset: UTF-8 Accept: application/fhir+json; fhirVersion=4.0 Content-Type: application/fhir+json; fhirVersion=4.0;charset=UTF-8 User-Agent: fhir/publisher

{"resourceType":"Parameters","parameter":[{"name":"coding","valueCoding":{"system":"http://standardterms.edqm.eu","code":"10225000","display":"Gastro-resistant tablet"}},{"name":"default-to-latest-version","valueBoolean":true},{"name":"cache-id","valueId":"679dc5eb-1cfe-4381-a9a5-44ac9ba60c67"},{"name":"x-system-cache-id","valueString":"dc8fd4bc-091a-424a-8a3b-6198ef146891"}]}

Response:

200 access-control-allow-methods:GET, POST, PUT, PATCH, DELETE access-control-allow-origin:* access-control-expose-headers:Content-Location, Location cache-control:public, max-age=600 connection:keep-alive content-length:311 content-type:application/fhir+json date:Mon, 22 Apr 2024 15:38:07 GMT last-modified:Mon, 22 Apr 2024 15:38:07 GMT pragma:no-cache server:nginx x-request-id:136-1557275

{"resourceType" : "Parameters","parameter" : [{"name" : "result","valueBoolean" : true},{"name" : "system","valueUri" : "http://standardterms.edqm.eu"},{"name" : "code","valueCode" : "10225000"},{"name" : "version","valueString" : "5 March 2019"},{"name" : "display","valueString" : "Gastro-resistant tablet"}]}

Request:

POST http://tx.fhir.org/r4/ValueSet/$expand HTTP/1.0 Accept-Charset: UTF-8 Accept: application/fhir+json; fhirVersion=4.0 Content-Type: application/fhir+json; fhirVersion=4.0;charset=UTF-8 User-Agent: fhir/publisher

{"resourceType":"Parameters","parameter":[{"name":"x-system-cache-id","valueString":"dc8fd4bc-091a-424a-8a3b-6198ef146891"},{"name":"includeDefinition","valueBoolean":false},{"name":"excludeNested","valueBoolean":false},{"name":"cache-id","valueId":"679dc5eb-1cfe-4381-a9a5-44ac9ba60c67"},{"name":"count","valueInteger":1000},{"name":"offset","valueInteger":0},{"name":"valueSet","resource":{"resourceType":"ValueSet","status":"active","compose":{"inactive":true,"include":[{"system":"http://standardterms.edqm.eu","filter":[{"property":"status","op":"=","value":"Current"},{"property":"class","op":"=","value":"ROA"},{"property":"domain","op":"=","value":"Human and Veterinary"}]}]}}}]}

Response:

200 access-control-allow-methods:GET, POST, PUT, PATCH, DELETE access-control-allow-origin:* access-control-expose-headers:Content-Location, Location cache-control:public, max-age=600 connection:keep-alive content-length:8125 content-type:application/fhir+json date:Mon, 22 Apr 2024 15:38:37 GMT last-modified:Mon, 22 Apr 2024 15:38:37 GMT pragma:no-cache server:nginx x-request-id:136-1557341

{"resourceType" : "ValueSet","status" : "active","expansion" : {"identifier" : "urn:uuid:b4d50855-4080-42a6-b946-7913f80a079b","timestamp" : "2024-04-22T15:38:37.300Z","total" : 80,"offset" : 0,"parameter" : [{"name" : "excludeNested","valueBoolean" : false},{"name" : "offset","valueInteger" : 0},{"name" : "count","valueInteger" : 1000},{"name" : "used-codesystem","valueUri" : "http://standardterms.edqm.eu|5 March 2019"},{"name" : "version","valueUri" : "http://standardterms.edqm.eu|5 March 2019"}],"contains" : [{"system" : "http://standardterms.edqm.eu","code" : "20001000","display" : "Auricular use"},{"system" : "http://standardterms.edqm.eu","code" : "20002500","display" : "Buccal use"},{"system" : "http://standardterms.edqm.eu","code" : "20003000","display" : "Cutaneous use"},{"system" : "http://standardterms.edqm.eu","code" : "20004000","display" : "Dental use"},{"system" : "http://standardterms.edqm.eu","code" : "20006000","display" : "Endocervical use"},{"system" : "http://standardterms.edqm.eu","code" : "20007000","display" : "Endosinusial use"},{"system" : "http://standardterms.edqm.eu","code" : "20008000","display" : "Endotracheopulmonary use"},{"system" : "http://standardterms.edqm.eu","code" : "20009000","display" : "Epidural use"},{"system" : "http://standardterms.edqm.eu","code" : "20010000","display" : "Epilesional use"},{"system" : "http://standardterms.edqm.eu","code" : "20011000","display" : "Extraamniotic use"},{"system" : "http://standardterms.edqm.eu","code" : "20011500","display" : "Extracorporeal use"},{"system" : "http://standardterms.edqm.eu","code" : "20013000","display" : "Gastroenteral use"},{"system" : "http://standardterms.edqm.eu","code" : "20013500","display" : "Gastric use"},{"system" : "http://standardterms.edqm.eu","code" : "20014000","display" : "Gingival use"},{"system" : "http://standardterms.edqm.eu","code" : "20015000","display" : "Haemodialysis"},{"system" : "http://standardterms.edqm.eu","code" : "20015500","display" : "Implantation"},{"system" : "http://standardterms.edqm.eu","code" : "20019500","display" : "Infiltration"},{"system" : "http://standardterms.edqm.eu","code" : "20020000","display" : "Inhalation use"},{"system" : "http://standardterms.edqm.eu","code" : "20021000","display" : "Intestinal use"},{"system" : "http://standardterms.edqm.eu","code" : "20022000","display" : "Intraamniotic use"},{"system" : "http://standardterms.edqm.eu","code" : "20023000","display" : "Intraarterial use"},{"system" : "http://standardterms.edqm.eu","code" : "20024000","display" : "Intraarticular use"},{"system" : "http://standardterms.edqm.eu","code" : "20025000","display" : "Intrabursal use"},{"system" : "http://standardterms.edqm.eu","code" : "20025500","display" : "Intracameral use"},{"system" : "http://standardterms.edqm.eu","code" : "20026000","display" : "Intracardiac use"},{"system" : "http://standardterms.edqm.eu","code" : "20026500","display" : "Intracartilaginous use"},{"system" : "http://standardterms.edqm.eu","code" : "20027000","display" : "Intracavernous use"},{"system" : "http://standardterms.edqm.eu","code" : "20027010","display" : "Intracerebral use"},{"system" : "http://standardterms.edqm.eu","code" : "20028000","display" : "Intracervical use"},{"system" : "http://standardterms.edqm.eu","code" : "20028300","display" : "Intracholangiopancreatic use"},{"system" : "http://standardterms.edqm.eu","code" : "20028500","display" : "Intracisternal use"},{"system" : "http://standardterms.edqm.eu","code" : "20029000","display" : "Intracoronary use"},{"system" : "http://standardterms.edqm.eu","code" : "20030000","display" : "Intradermal use"},{"system" : "http://standardterms.edqm.eu","code" : "20031000","display" : "Intradiscal use"},{"system" : "http://standardterms.edqm.eu","code" : "20031500","display" : "Intraepidermal use"},{"system" : "http://standardterms.edqm.eu","code" : "20031700","display" : "Intraglandular use"},{"system" : "http://standardterms.edqm.eu","code" : "20032000","display" : "Intralesional use"},{"system" : "http://standardterms.edqm.eu","code" : "20033000","display" : "Intralymphatic use"},{"system" : "http://standardterms.edqm.eu","code" : "20035000","display" : "Intramuscular use"},{"system" : "http://standardterms.edqm.eu","code" : "20036000","display" : "Intraocular use"},{"system" : "http://standardterms.edqm.eu","code" : "20036500","display" : "Intraosseous use"},{"system" : "http://standardterms.edqm.eu","code" : "20037000","display" : "Intrapericardial use"},{"system" : "http://standardterms.edqm.eu","code" : "20038000","display" : "Intraperitoneal use"},{"system" : "http://standardterms.edqm.eu","code" : "20039000","display" : "Intrapleural use"},{"system" : "http://standardterms.edqm.eu","code" : "20039200","display" : "Intraportal use"},{"system" : "http://standardterms.edqm.eu","code" : "20039500","display" : "Intraprostatic use"},{"system" : "http://standardterms.edqm.eu","code" : "20041000","display" : "Intrasternal use"},{"system" : "http://standardterms.edqm.eu","code" : "20042000","display" : "Intrathecal use"},{"system" : "http://standardterms.edqm.eu","code" : "20043000","display" : "Intratumoral use"},{"system" : "http://standardterms.edqm.eu","code" : "20044000","display" : "Intrauterine use"},{"system" : "http://standardterms.edqm.eu","code" : "20045000","display" : "Intravenous use"},{"system" : "http://standardterms.edqm.eu","code" : "20046000","display" : "Intravesical use"},{"system" : "http://standardterms.edqm.eu","code" : "20047000","display" : "Intravitreal use"},{"system" : "http://standardterms.edqm.eu","code" : "20047500","display" : "Iontophoresis"},{"system" : "http://standardterms.edqm.eu","code" : "20048000","display" : "Laryngopharyngeal use"},{"system" : "http://standardterms.edqm.eu","code" : "20049000","display" : "Nasal use"},{"system" : "http://standardterms.edqm.eu","code" : "20051000","display" : "Ocular use"},{"system" : "http://standardterms.edqm.eu","code" : "20053000","display" : "Oral use"},{"system" : "http://standardterms.edqm.eu","code" : "20054000","display" : "Oromucosal use"},{"system" : "http://standardterms.edqm.eu","code" : "20055000","display" : "Oropharyngeal use"},{"system" : "http://standardterms.edqm.eu","code" : "20057000","display" : "Periarticular use"},{"system" : "http://standardterms.edqm.eu","code" : "20058000","display" : "Perineural use"},{"system" : "http://standardterms.edqm.eu","code" : "20059000","display" : "Periodontal use"},{"system" : "http://standardterms.edqm.eu","code" : "20059300","display" : "Periosseous use"},{"system" : "http://standardterms.edqm.eu","code" : "20059400","display" : "Peritumoral use"},{"system" : "http://standardterms.edqm.eu","code" : "20059500","display" : "Posterior juxtascleral use"},{"system" : "http://standardterms.edqm.eu","code" : "20061000","display" : "Rectal use"},{"system" : "http://standardterms.edqm.eu","code" : "20061500","display" : "Retrobulbar use"},{"system" : "http://standardterms.edqm.eu","code" : "20062000","display" : "Route of administration not applicable"},{"system" : "http://standardterms.edqm.eu","code" : "20063000","display" : "Skin scarification"},{"system" : "http://standardterms.edqm.eu","code" : "20065000","display" : "Subconjunctival use"},{"system" : "http://standardterms.edqm.eu","code" : "20066000","display" : "Subcutaneous use"},{"system" : "http://standardterms.edqm.eu","code" : "20067000","display" : "Sublingual use"},{"system" : "http://standardterms.edqm.eu","code" : "20067500","display" : "Submucosal use"},{"system" : "http://standardterms.edqm.eu","code" : "20070000","display" : "Transdermal use"},{"system" : "http://standardterms.edqm.eu","code" : "20071000","display" : "Urethral use"},{"system" : "http://standardterms.edqm.eu","code" : "20072000","display" : "Vaginal use"},{"system" : "http://standardterms.edqm.eu","code" : "20080000","display" : "Intracerebroventricular use"},{"system" : "http://standardterms.edqm.eu","code" : "20081000","display" : "Subretinal use"},{"system" : "http://standardterms.edqm.eu","code" : "20084000","display" : "Intracorneal use"}]}}

grahamegrieve commented 7 months ago

This is a validator thing - if only looks locally for the definition of the code system, on the expectation that code systems only available to the server are too big to retrieve and check

lmckenzi commented 6 months ago

@grahamegrieve Could you retrieve the CodeSystem with _summary=true? That would bring back the property definitions without bringing back the codes.

In any case, is this something you agree we should fix?

rhausam commented 6 months ago

The EDQM code system definition is in the fhir.tx.support.r4 package, which is where tx.fhir.org picks it up. Does the validator not also have access to that package? If it doesn't have access to the tx support package(s), presumably it should? @grahamegrieve @lmckenzi

grahamegrieve commented 6 months ago

Isn't this fixed in the latest release?

rhausam commented 6 months ago

No, I don't think it is fixed. I just rebuilt IPS yesterday using IG Publisher 1.6.6, and it still shows 10 VALUESET_UNKNOWN_FILTER_PROPERTY_NO_CS messages about "No definition can be found for the system http://standardterms.edqm.eu, and the property ..." (and, of course, the Validator does the same). @grahamegrieve