1 | C0XUTIL ; GPL - Fileman Triples utilities ;11/07/11 17:05
|
---|
2 | ;;0.1;C0X;nopatch;noreleasedate;Build 7
|
---|
3 | ;Copyright 2011 George Lilly. Licensed under the terms of the GNU
|
---|
4 | ;General Public License See attached copy of the License.
|
---|
5 | ;
|
---|
6 | ;This program is free software; you can redistribute it and/or modify
|
---|
7 | ;it under the terms of the GNU General Public License as published by
|
---|
8 | ;the Free Software Foundation; either version 2 of the License, or
|
---|
9 | ;(at your option) any later version.
|
---|
10 | ;
|
---|
11 | ;This program is distributed in the hope that it will be useful,
|
---|
12 | ;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | ;GNU General Public License for more details.
|
---|
15 | ;
|
---|
16 | ;You should have received a copy of the GNU General Public License along
|
---|
17 | ;with this program; if not, write to the Free Software Foundation, Inc.,
|
---|
18 | ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
19 | ;
|
---|
20 | Q
|
---|
21 | ;
|
---|
22 | NSP(ZX) ; OUTPUT TRANSFORM EXTRINSIC
|
---|
23 | ;
|
---|
24 | N ZR
|
---|
25 | ; I WOULD REALLY LIKE TO NOT HAVE THE FILE NUMBER HARD CODED HERE
|
---|
26 | ; ANYONE KNOW HOW I COULD DO THAT? :) GPL
|
---|
27 | S ZR=$$GET1^DIQ(172.201,ZX_",",.01)
|
---|
28 | I '$D(C0XNSP) S C0XNSP=1 ; DEFAULT ON
|
---|
29 | I C0XNSP=0 Q ZR ; SWITCHED OFF
|
---|
30 | I '$D(C0XVOC) D VOCINIT ; INITIALIZE THE VOCABULARIES
|
---|
31 | N ZI,ZJ,ZK S ZI=""
|
---|
32 | N DONE S DONE=0
|
---|
33 | F S ZI=$O(C0XVOC(ZI)) Q:(DONE=1)!(ZI="") D ;
|
---|
34 | . ;W !,ZI
|
---|
35 | . S ZJ=C0XVOC(ZI)
|
---|
36 | . S ZK=$P(ZR,ZJ,2)
|
---|
37 | . ;W !,"ZK=",ZK
|
---|
38 | . I ZK'="" D ; BINGO
|
---|
39 | . . S ZR=ZI_":"_ZK
|
---|
40 | . . S DONE=1
|
---|
41 | Q ZR
|
---|
42 | ;
|
---|
43 | VOCINIT ; INITIALIZE VOCABULARIES
|
---|
44 | S C0XVOC("dcterms")="http://purl.org/dc/terms/"
|
---|
45 | S C0XVOC("rdf")="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
---|
46 | S C0XVOC("sp")="http://smartplatforms.org/terms#"
|
---|
47 | S C0XVOC("qds")="http://cms.gov/pqri/qds/"
|
---|
48 | S C0XVOC("smart")="http://sandbox-api.smartplatforms.org/records/"
|
---|
49 | S C0XVOC("snomed")="http://www.ihtsdo.org/snomed-ct/concepts/"
|
---|
50 | S C0XVOC("rxnorm")="http://rxnav.nlm.nih.gov/REST/rxcui/"
|
---|
51 | S C0XVOC("loinc")="http://loinc.org/codes/"
|
---|
52 | S C0XVOC("file")="/home/glilly/fmts/trunk/samples/"
|
---|
53 | S C0XVOC("foaf")="http://xmlns.com/foaf/0.1/"
|
---|
54 | S C0XVOC("skos")="http://www.w3.org/2004/02/skos/core#"
|
---|
55 | S C0XVOC("gpl")="http://georgetriples.org/"
|
---|
56 | S C0XVOC("cg")="http://datasets.caregraf.org/"
|
---|
57 | S C0XVOC("mv")="http://metavista.name/foundation#"
|
---|
58 | S C0XVOC("rdfs")="http://www.w3.org/2000/01/rdf-schema#"
|
---|
59 | S C0XVOC("vista")="http://osehra.org/"
|
---|
60 | S C0XVOC("vmu")="http://vista.org/mu/"
|
---|
61 | S C0XVOC("vq")="http://vista.org/quality/"
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | EXT(C0XIN) ; EXTRINSIC WHICH EXPANDS NAMESPACES
|
---|
65 | ; SO skos:xxx would return http://www.w3.org/2004/02/skos/core#xxx
|
---|
66 | N C0XPRE
|
---|
67 | S C0XPRE=C0XIN
|
---|
68 | I '$D(C0XVOC) D VOCINIT ; INITIALIZE NAME SPACE TABLE
|
---|
69 | I C0XPRE[":" D ; expand using vocabulary
|
---|
70 | . N ZB,ZA
|
---|
71 | . S ZB=$P(C0XPRE,":",1)
|
---|
72 | . S ZA=$P(C0XPRE,":",2)
|
---|
73 | . I $G(C0XVOC(ZB))'="" D ;
|
---|
74 | . . S C0XPRE=C0XVOC(ZB)_ZA ; expanded
|
---|
75 | Q C0XPRE
|
---|
76 | ;
|
---|