FHIR Chat · Must Have Rows issues · IG creation

Stream: IG creation

Topic: Must Have Rows issues


view this post on Zulip 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

view this post on Zulip 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?

view this post on Zulip Grahame Grieve (Feb 19 2018 at 19:33):

ig.json belongs to the implementation guide, not the docker

view this post on Zulip 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.

view this post on Zulip 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?

view this post on Zulip 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

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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.

view this post on Zulip 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)

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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?

view this post on Zulip 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)

view this post on Zulip 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)

view this post on Zulip 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

view this post on Zulip Grahame Grieve (Mar 30 2018 at 20:05):

so that's a possibility

view this post on Zulip 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