[BUG] Conversion to FHIR fails
Closed this issue · 6 comments
Describe the bug
I am using a profile for the questionnaire resource https://github.com/beda-software/fhir-emr/blob/be05ffb79d90c5a39888817a789ea944f03a13b4/zrc/questionnaire-profile.edn#L4
I am using the Questionnaire
url: https://beda.software/fhir-emr-questionnaire
item:
- stop: 20
text: Frequency per week
type: decimal
start: 1
linkId: slider
stopLabel: 20+
itemControl:
coding:
- code: slider
sliderStepValue: 2
meta:
profile:
- https://beda.software/fhir-emr-questionnaire
lastUpdated: '2022-10-19T07:30:59.610865Z'
createdAt: '2022-10-19T06:18:58.249997Z'
versionId: '440'
name: slider
status: draft
id: 4d89d5bd-eddd-471d-8a90-be0c9d165604
resourceType: Questionnaire
When I try to load it in FHIR format I got the following error
GET /fhir/Questionnaire/4d89d5bd-eddd-471d-8a90-be0c9d165604
---
resourceType: OperationOutcome
id: >-
[exception](http://localhost:8080/ui/console#/rest?req=GET%20/OperationOutcome/exception)
text:
status: generated
div: 'Don''t know how to create ISeq from: java.lang.Integer'
issue:
- severity: fatal
code: exception
diagnostics: >
java.lang.IllegalArgumentException: Don't know how to create ISeq from:
java.lang.Integer
at clojure.lang.RT.seqFrom (RT.java:557)
clojure.lang.RT.seq (RT.java:537)
clojure.lang.APersistentMap.cons (APersistentMap.java:40)
clojure.lang.RT.conj (RT.java:677)
clojure.core$conj__5455.invokeStatic (core.clj:87)
clojure.core$merge$fn__6027.invoke (core.clj:3066)
clojure.core$reduce1.invokeStatic (core.clj:946)
clojure.core$reduce1.invokeStatic (core.clj:936)
clojure.core$merge.invokeStatic (core.clj:3065)
clojure.core$merge.doInvoke (core.clj:3058)
clojure.lang.RestFn.invoke (RestFn.java:421)
fhir.conv3$export_extension$mk_complex_ext__27489.invoke (conv3.clj:232)
fhir.conv3$export_extension.invokeStatic (conv3.clj:234)
fhir.conv3$export_extension.invoke (conv3.clj:208)
fhir.conv3$_STAR_export.invokeStatic (conv3.clj:508)
fhir.conv3$_STAR_export.invoke (conv3.clj:461)
fhir.conv3$_STAR_export$fn__27567.invoke (conv3.clj:497)
fhir.conv3$_STAR_export.invokeStatic (conv3.clj:495)
fhir.conv3$_STAR_export.invoke (conv3.clj:461)
fhir.conv3$export.invokeStatic (conv3.clj:585)
fhir.conv3$export.doInvoke (conv3.clj:581)
clojure.lang.RestFn.invoke (RestFn.java:442)
fhir.conv3$export_BANG_.invokeStatic (conv3.clj:830)
fhir.conv3$export_BANG_.invoke (conv3.clj:826)
fhir.core$fn__29760.invokeStatic (core.clj:219)
fhir.core/fn (core.clj:210)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
unifn.core$_STAR_apply_impl$fn__17243.invoke (core.clj:44)
unifn.core$_STAR_apply_impl.invokeStatic (core.clj:44)
unifn.core$_STAR_apply_impl.invoke (core.clj:37)
unifn.core$_STAR_apply.invokeStatic (core.clj:71)
unifn.core$_STAR_apply.invoke (core.clj:68)
unifn.core$_STAR_apply.invokeStatic (core.clj:77)
unifn.core$_STAR_apply.invoke (core.clj:68)
fhir.core$transformator.invokeStatic (core.clj:234)
fhir.core$transformator.invoke (core.clj:234)
fhir.core$fn__29779.invokeStatic (core.clj:248)
fhir.core/fn (core.clj:248)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
unifn.core$_STAR_apply_impl$fn__17243.invoke (core.clj:44)
unifn.core$_STAR_apply_impl.invokeStatic (core.clj:44)
unifn.core$_STAR_apply_impl.invoke (core.clj:37)
unifn.core$_STAR_apply.invokeStatic (core.clj:71)
unifn.core$_STAR_apply.invoke (core.clj:68)
proto.box$fn__38304.invokeStatic (box.clj:162)
proto.box/fn (box.clj:149)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
unifn.core$_STAR_apply_impl$fn__17243.invoke (core.clj:44)
unifn.core$_STAR_apply_impl.invokeStatic (core.clj:44)
unifn.core$_STAR_apply_impl.invoke (core.clj:37)
unifn.core$_STAR_apply.invokeStatic (core.clj:71)
unifn.core$_STAR_apply.invoke (core.clj:68)
unifn.core$_STAR_apply.invokeStatic (core.clj:77)
unifn.core$_STAR_apply.invoke (core.clj:68)
proto.box$handle_to_ctx.invokeStatic (box.clj:258)
proto.box$handle_to_ctx.invoke (box.clj:203)
proto.box$start$fn__38481.doInvoke (box.clj:568)
clojure.lang.RestFn.invoke (RestFn.java:410)
web.core$mk_handler$fn__36962.invoke (core.clj:92)
web.core$healthcheck$fn__36950.invoke (core.clj:77)
ring.middleware.cookies$wrap_cookies$fn__36847.invoke (cookies.clj:214)
web.core$handle_static.invokeStatic (core.clj:106)
web.core$handle_static.invoke (core.clj:97)
web.core$wrap_static$fn__36970.invoke (core.clj:110)
ring.middleware.content_type$wrap_content_type$fn__36677.invoke (content_type.clj:34)
ring.middleware.not_modified$wrap_not_modified$fn__36884.invoke (not_modified.clj:61)
org.httpkit.server.HttpHandler.run (RingHandler.java:123)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
java.util.concurrent.FutureTask.run (FutureTask.java:264)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
java.lang.Thread.run (Thread.java:833)
Severity
Critical
Versions:
- Aidbox image version:
devbox:edge
v:2210.0a981731
@ir4y, hello. Here is correct edn:
import #{hl7-fhir-uv-sdc.sdc-questionnaire
hl7-fhir-r4-core.CodeableConcept
hl7-fhir-r4-core.integer}
QuestionnaireProfile
{:zen/tags #{zen.fhir/profile-schema zen/schema}
:confirms #{hl7-fhir-uv-sdc.sdc-questionnaire/schema}
:zen.fhir/type "Questionnaire"
:zen.fhir/profileUri "https://beda.software/fhir-emr-questionnaire"
:type zen/map
:zen.fhir/version "0.5.23"
:keys {:item {:type zen/vector
:every {:type zen/map
:keys {:itemControl {:confirms #{hl7-fhir-r4-core.CodeableConcept/schema}
:fhir/extensionUri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"}
:sliderStepValue {:type zen/number
:fhir/extensionUri "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue"}
:start {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-start"}
:stop {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-stop"}
:startLabel {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-start-label"}
:stopLabel {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-stop-label"}
:helpText {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/help-text"}
:adjustLastToRight {:confirms #{hl7-fhir-r4-core.boolean/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/adjust-last-to-left"}}}}}}}
Your questionnaire-profile.edn does not match with zen/fhire documentation paragraph 4: It is important to use FHIR type instead of plain zen type, i.e. use :confirms #{hl7-fhir-r4-core.string/schema} instead of :type zen/string.
Thank you for your help @NikitaSinc
I think it would be nice to somehow inform users about similar problems.
I have updated the definition, but still, get the same error
https://github.com/beda-software/fhir-emr/blob/69c76d64a1bc58d83df880d4a97005c119b7128b/zrc/questionnaire-profile.edn
{ns questionnaire-profile
import #{hl7-fhir-uv-sdc.sdc-questionnaire
hl7-fhir-r4-core.CodeableConcept
hl7-fhir-r4-core.integer
hl7-fhir-r4-core.boolean
hl7-fhir-r4-core.string}
QuestionnaireProfile
{:zen/tags #{zen.fhir/profile-schema zen/schema}
:confirms #{hl7-fhir-uv-sdc.sdc-questionnaire/schema}
:zen.fhir/type "Questionnaire"
:zen.fhir/profileUri "https://beda.software/fhir-emr-questionnaire"
:type zen/map
:zen.fhir/version "0.5.23"
:keys {:item {:type zen/vector
:every {:type zen/map
:keys {:itemControl {:confirms #{hl7-fhir-r4-core.CodeableConcept/schema}
:fhir/extensionUri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"}
:sliderStepValue {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue"}
:start {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-start"}
:stop {:confirms #{hl7-fhir-r4-core.integer/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-stop"}
:startLabel {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-start-label"}
:stopLabel {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/slider-stop-label"}
:helpText {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/help-text"}
:adjustLastToRight {:confirms #{hl7-fhir-r4-core.boolean/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/adjust-last-to-right"}
:unit {:confirms #{hl7-fhir-r4-core.string/schema}
:fhir/extensionUri "https://beda.software/fhir-emr-questionnaire/unit"}}}}}}}
@ir4y , could you provide your QuestionnaireProfile in edn format from profiles in your aidbox ui? Is there any errors in profiles page?
I think that I have to restart aidbox or use a newer version of devbox.
The problem is gone. Conversion is working now.
@ir4y, we did some improvements in our documentation. Please check out these paragraph and let us know if it became more accurate.