Skip to content

Instantly share code, notes, and snippets.

View kaicode's full-sized avatar

Kai Kewley kaicode

View GitHub Profile
https://docs.google.com/presentation/d/1mIW5lb-xvy9x8FybxOyaH1EJqvE-a_ygFSvwKi6jsbU/edit?usp=sharing
grammar ECL;
expressionconstraint : ws ( refinedexpressionconstraint | compoundexpressionconstraint | dottedexpressionconstraint | subexpressionconstraint ) ws;
refinedexpressionconstraint : subexpressionconstraint ws COLON ws eclrefinement;
compoundexpressionconstraint : conjunctionexpressionconstraint | disjunctionexpressionconstraint | exclusionexpressionconstraint;
conjunctionexpressionconstraint : subexpressionconstraint (ws conjunction ws subexpressionconstraint)+;
disjunctionexpressionconstraint : subexpressionconstraint (ws disjunction ws subexpressionconstraint)+;
exclusionexpressionconstraint : subexpressionconstraint ws exclusion ws subexpressionconstraint;
dottedexpressionconstraint : subexpressionconstraint (ws dottedexpressionattribute)+;
dottedexpressionattribute : dot ws eclattributename;
subexpressionconstraint: (constraintoperator ws)? ( ( (memberof ws)? (eclfocusconcept | (LEFT_PAREN ws expressionconstraint ws RIGHT_PAREN)) (ws memberfilterconstraint)*) | (eclfocusconcept | (LEFT_PAREN ws e
grammar ECL;
expressionconstraint : ws ( refinedexpressionconstraint | compoundexpressionconstraint | dottedexpressionconstraint | subexpressionconstraint ) ws;
refinedexpressionconstraint : subexpressionconstraint ws COLON ws eclrefinement;
compoundexpressionconstraint : conjunctionexpressionconstraint | disjunctionexpressionconstraint | exclusionexpressionconstraint;
conjunctionexpressionconstraint : subexpressionconstraint (ws conjunction ws subexpressionconstraint)+;
disjunctionexpressionconstraint : subexpressionconstraint (ws disjunction ws subexpressionconstraint)+;
exclusionexpressionconstraint : subexpressionconstraint ws exclusion ws subexpressionconstraint;
dottedexpressionconstraint : subexpressionconstraint (ws dottedexpressionattribute)+;
dottedexpressionattribute : dot ws eclattributename;
subexpressionconstraint : (constraintoperator ws)? (memberof ws)? (eclfocusconcept | (LEFT_PAREN ws expressionconstraint ws RIGHT_PAREN)) (ws filterconstraint)*;
@kaicode
kaicode / hapi-cli-upload.txt
Last active July 20, 2022 08:22
FHIR HAPI CLI terminology upload
# LOINC
hapi-fhir-cli upload-terminology -d Loinc_2.72.zip -v r4 -t http://localhost:8080/fhir -u http://loinc.org
# ICD-10
hapi-fhir-cli upload-terminology -d icdClaML2019ens.zip -v r4 -t http://localhost:8080/fhir -u http://hl7.org/fhir/sid/icd-10
# ICD-10-CM
hapi-fhir-cli upload-terminology -d icd10cm_tabular_2021.xml -v r4 -t http://localhost:8080/fhir -u http://hl7.org/fhir/sid/icd-10-cm
# Custom
@kaicode
kaicode / PrintSSLProtocols.java
Created May 10, 2021 11:43
Java class to print supported SSL protocols
import javax.net.ssl.SSLContext;
public class PrintSSLProtocols {
public static void main(String[] args) throws Exception {
System.out.println(String.join(" ", SSLContext.getDefault().getSupportedSSLParameters().getProtocols()));
}
}
@kaicode
kaicode / covid19-comorbidity-affects
Created September 11, 2020 14:49
SNOMED CT Health Data Analytics - COVID-19 Comorbidity Affects - API Request
{
"name": "COVID-19 Comorbidity Affects",
"criteria": {
"encounterCriteria": [
{
"conceptECL": "<<840539006|COVID-19|",
"has": true
}
]
},
@kaicode
kaicode / gist:0c1e3f2b6633d86e103cf37421d5a5ea
Created July 28, 2020 15:26
Remove duplicate RF2 states with known effective time. (gsed is Gnome SED installed on MacOS)
file=der2_cRefset_LanguageDelta-en_INT_20200731.txt
effectiveTime=20200309
for id in `cut -f1 $file | sort | uniq -d`; do echo ${id}; gsed -i "/$id\t${effectiveTime}\t.*/d" $file; done
@kaicode
kaicode / Authenticate-SNOMED-International-user.sh
Last active July 17, 2020 12:51
Example API request to authenticate a user against the SNOMED International domain using the IMS API. If unsuccessful the response code is 404. If successful the response code is 200 and the Set-Cookie response header will contain the single sign-on authentication token.
$ curl -i -XPOST -H 'Content-Type: application/json;charset=UTF-8' https://dev-ims.ihtsdotools.org/api/authenticate -d '{"login":"test-user", "password":"PutPasswordHere"}'
HTTP/1.1 200
Server: nginx
Date: Fri, 17 Jul 2020 12:45:03 GMT
Content-Length: 0
Connection: keep-alive
Set-Cookie: dev-ims-ihtsdo=CO1qkDHBRtjkCY9A6GjMnQAAAbbkskskACdGVzdC1hdXRobThingssdAA; Max-Age=259200; Expires=Mon, 20-Jul-2020 12:45:03 GMT; Domain=ihtsdotools.org; Path=/
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
@kaicode
kaicode / FSNJoiner.java
Created July 16, 2020 19:39
Join active snomed concept FSNs to a TSV list of codes.
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import java.io.*;
import java.util.Map;
public class Temp {
public static void main(String[] args) throws IOException {
run();
}
{
"criteria": {
},
"groups": [
[
{
"name": "Annual",
"criteria": {
"encounterCriteria": [
{