@pascal : Suppose if i want to add a visit note in Encounter , how can can I proceed ?
I don’t know that against which parameter shall I pass the Primary Diagnosis ?
where i know is only :
“encounterType”: “67a71486-1a54-468f-ac3e-7091a9a79584”, //encounterType for visit note
“form”: “c75f120a-04ec-11e3-8780-2b40bef9a44b”, // form type for visit note.
Root Error
java.lang.IllegalArgumentException: Obs group doesn’t contain a coded or non-coded diagnosis: Obs #573
at org.openmrs.module.emrapi.diagnosis.DiagnosisMetadata.toDiagnosis(DiagnosisMetadata.java:150)
at org.openmrs.module.coreapps.htmlformentry.EncounterDiagnosesElement.getExistingDiagnoses(EncounterDiagnosesElement.java:258)
at org.openmrs.module.coreapps.htmlformentry.EncounterDiagnosesElement.generateHtml(EncounterDiagnosesElement.java:83)
at org.openmrs.module.coreapps.htmlformentry.EncounterDiagnosesTagHandler.getSubstitution(EncounterDiagnosesTagHandler.java:97)
at org.openmrs.module.htmlformentry.handler.SubstitutionTagHandler.doStartTag(SubstitutionTagHandler.java:39)
at org.openmrs.module.htmlformentry.HtmlFormEntryGenerator.applyTagsHelper(HtmlFormEntryGenerator.java:516)
at org.openmrs.module.htmlformentry.HtmlFormEntryGenerator.applyTagsHelper(HtmlFormEntryGenerator.java:533)
at org.openmrs.module.htmlformentry.HtmlFormEntryGenerator.applyTagsHelper(HtmlFormEntryGenerator.java:533)
at org.openmrs.module.htmlformentry.HtmlFormEntryGenerator.applyTags(HtmlFormEntryGenerator.java:489)
at org.openmrs.module.htmlformentry.FormEntrySession.createForm(FormEntrySession.java:410)
at org.openmrs.module.htmlformentry.FormEntrySession.getHtmlToDisplay(FormEntrySession.java:764)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl$GetBeanMethodMetaProperty.getProperty(MetaClassImpl.java:3468)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:61)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:235)
at SimpleTemplateScript41.run(SimpleTemplateScript41.groovy:133)
at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:165)
at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:177)
at org.openmrs.ui.framework.fragment.GroovyFragmentView.render(GroovyFragmentView.java:46)
at org.openmrs.ui.framework.fragment.FragmentFactory.processThisFragment(FragmentFactory.java:187)
at org.openmrs.ui.framework.fragment.FragmentFactory.process(FragmentFactory.java:116)
at org.openmrs.ui.framework.page.PageContext.includeFragment(PageContext.java:75)
at org.openmrs.ui.framework.UiUtils.includeFragment(UiUtils.java:157)
at sun.reflect.GeneratedMethodAccessor2436.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUn
Offhand, without looking at the code, I expect the problem is that the server (specifically the emrapi module) needs to be configured so it knows which concepts to use to store diagnoses.
Specifically, you need a concept set where the grouping concept has a mapping “org.openmrs.module.emrapi:Diagnosis Concept Set”.
And that set needs set members for “org.openmrs.module.emrapi:Coded Diagnosis” and “org.openmrs.module.emrapi:Non-Coded Diagnosis”
(if you’re using the CIEL dictionary this is already done)
Further, the obs you’re posting need to conform to this structure, and your example POST doesn’t. (I.e. you need an obs group for the whole diagnosis, that contains an obs for the “mild fever” observation. This shouldn’t be in the comment field.)