Stream: IG creation
Topic: Must Have Rows issues
abhishek gupta (Feb 19 2018 at 12:59):
Hi All,
when I am running the Implementation Guide at published time I am getting "Must have Rows Exception".
I didn't find anywhere what is the mean of that error.
if anybody knows about that Exception ping me.
I also attached the screenshot in below.
rowsException.png
John Silva (Feb 19 2018 at 17:00):
I was able to create a dockerized IG Publisher using the Dockerfile (with some updates for versions) I mentioned before. I don't have it running completely -- don't know what to use for the ig.json file (haven't spent enough time on it yet). Does anyone have a sample of the ig.json config file for a starter set?
Grahame Grieve (Feb 19 2018 at 19:33):
ig.json belongs to the implementation guide, not the docker
John Silva (Feb 19 2018 at 22:25):
Yes, but when I run the image (jar-ball) inside the docker I pass the -ig option and I need an ig.json for it.
Grahame Grieve (Feb 19 2018 at 22:28):
so either use one of the existing Implementation guides, or you are asking how to actually author and IG?
Andrew Patterson (Feb 20 2018 at 21:37):
@John Silva - you need to volume mount the IG folder into the Docker image on run to give the publisher access to the files including ig.json (and a space to put the output). So in my Docker image I had everything setup so that the underlying docker machine expected things to be at a path /ig
docker run -it --rm --name publish -v /home/andrew/git/myig:/ig fhir_publisher
John Silva (Feb 21 2018 at 14:57):
I'm asking for a sample ig.json file -- the config file that controls the IG Publish. (@abhishek gupta posted one earlier -- I may try that as a 'starter set')
BTW, I used the Dockerfile from robeastwood-agency and modified it to pull a newer version of alpine :
https://raw.githubusercontent.com/robstwd/assorted-dockerfiles/master/alpine-fhir-ig-publisher/Dockerfile
Here's my change (addition):
RUN echo http://dl-4.alpinelinux.org/alpine/v3.7/main/ > /etc/apk/repositories
(just before the RUN apk command)
(I also had to use ENV vars because of being behind a corporate firewall:
ENV http_proxy http://<host>:<port>/
ENV https_proxy http://<host>:<port>/
---- After the docker image is created and running, here's the command to run inside the container, the thing (technical term ;-) ) I'm looking for is the file after the -ig option)
# inside container run
# java -jar /usr/src/ig-publisher/publisher.jar -ig /usr/src/input/dh-Participants-ig.json
Eric Haas (Feb 21 2018 at 16:05):
there is a simple one here :
{
"tool" : "jekyll",
"paths" : {
"resources" : "resources",
"pages" : "pages",
"temp" : "temp",
"qa" : "qa",
"output" : "output",
"txCache" : "txCache",
"specification" : "http://hl7.org/fhir/2016May"
},
"canonicalBase": "http://hl7.org/fhir/test-ig-14",
"version" : "1.4.0",
"sct-edition" : "http://snomed.info/sct/900000000000207008",
"spreadsheets": [
"diagnosticorder-daf-profile-spreadsheet.xml"
],
"defaults": {
"Any": {
"template-format" : "format.html",
"template-base" : "base.html"
},
"CodeSystem": {
"template-base" : "cs.html"
},
"ValueSet": {
"template-base" : "vs.html"
},
"ConceptMap": {
"template-base" : "cm.html"
},
"StructureDefinition": {
"template-base" : "sd.html"
}
},
"source": "ig.xml",
"resources" : {
}
}
or here: https://github.com/Healthedata1/IG-Template2 but be forwarned I've added extra parameters which the ig-pub ignores.
John Silva (Feb 21 2018 at 22:16):
Thanks @Eric Haas ! It would be nice to have this docker image to make it easier for others to have/run their own IG Publisher. I'm new to docker but I was able to create an image using the Dockerfile I mentioned; with this info maybe this docker image could be uploaded to the docker repository and made available for other FHIR users.
John Silva (Feb 28 2018 at 13:27):
@Andrew Patterson - thanks, I had done that (with a -v mount command to my Windows directory). The problem is that I don't have an example of the ig.json configuration file. Somewhere (can't find the page on the FHIR server again) there is a description of how to configure this json file, but it doesn't have an example/starter one to get started. @abhishek gupta posted a link to his version; I'm hoping to use that as an example/starter version. As far as the actual ig publisher file, I haven't got that far yet and I also have to decide which version to use because we're still using older an older FHIR version (DSTU2 right now)
Eric Haas (Feb 28 2018 at 15:45):
the description of the ig json is here: http://wiki.hl7.org/index.php?title=IG_Publisher_Documentation
John Silva (Feb 28 2018 at 16:20):
Thanks @Eric Haas -- I had found it before but couldn't find it again when I went looking. I thought it was on the www.hl7.org/fhir page somewhere, not on the Wiki page.
John Silva (Mar 30 2018 at 18:37):
@Andrew Patterson -- I just got back to this. What is in your /home/andrew/git/myig directory and where do you get that from? Is that the ig release from fhir.hl7.org extracted to a folder structure? Ah, I found that I needed to download the "Definitions File used by the IG Publisher" (https://www.hl7.org/fhir/igpack.zip) and then unzip/extract this to a directory on my machine. I then used the -v volume command to allow the docker image to find this and that works and it actually starts up. Unfortunately, it fails to connect to the tx server http://tx.fhir.org so I can't get any further. Does this need a tx server for this to work? If so, is there one running that can be used with this?
John Silva (Mar 30 2018 at 18:40):
FYI, here's how I run this from Docker on Windows (I have the igpack.zip files extracted to C:\temp\igpub )
docker run -it --rm -v c:/temp/igpub:/usr/src/input --name myIgPublisher java-ig-pub
Then, when that docker image starts up I run the following in the docker image:
/usr/src/ig-publisher # java -jar /usr/src/ig-publisher/publisher.jar -ig /usr/src/input/ig.json
FHIR Implementation Guide Publisher (v3.2.0-13585, gen-code v3.2.0-13475) @ Friday, March 30, 2018 6:40:05 PM
Detected Java version: 1.8.0_151 from /usr/lib/jvm/java-1.8-openjdk/jre on amd64 (64bit). 441MB available
Load Configuration from /usr/src/input/ig.json (00.0000sec)
Root directory: /usr/src/input (00.0062sec)
Terminology Cache is at /root/fhircache. 0 files in cache (00.0086sec)
Load Validation Pack (internal) (00.0087sec)
John Silva (Mar 30 2018 at 18:43):
After 10-20sec I get this error:
org.hl7.fhir.r4.utils.client.EFhirClientException: Error sending Http Request: Connection to http://tx.fhir.org refused
(maybe it's a corporate firewall issue -- maybe I need to set the HTTP proxy "inside" the docker container? --- actually, I checked and I do have http_proxy and https_proxy set to my corporate web proxy so that should be OK. Also, if I manually browse to that URL in my browser it returns a webpage)
Grahame Grieve (Mar 30 2018 at 20:04):
tx.fhir.org is a little unstable right now. I'm still trying to figure out why
Grahame Grieve (Mar 30 2018 at 20:05):
so that's a possibility
John Silva (Mar 30 2018 at 20:31):
OK, thanks. (I always assume it's on 'my end' first)
Last updated: Apr 12 2022 at 19:14 UTC