qpid 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemtest +0 -0
- data/lib/qpid.rb +3 -3
- data/test/content/3000888_report_pat_4313382_1.xml +58 -0
- data/test/content/3000888_report_rad_63580395.xml +86 -0
- data/test/content/3000888_search_type.xml +1 -0
- data/test/content/3000888_search_type_fromdate.xml +1 -0
- data/test/content/3000888_search_type_rad.xml +17 -0
- data/test/mock_http_client.rb +113 -0
- data/test/qpid.yml +6 -0
- data/test/qpid_test_data.yml +21 -0
- metadata +107 -86
- data/script/destroy +0 -14
- data/script/generate +0 -14
data/.gemtest
ADDED
|
File without changes
|
data/lib/qpid.rb
CHANGED
|
@@ -6,7 +6,7 @@ require 'cgi'
|
|
|
6
6
|
require 'happymapper'
|
|
7
7
|
|
|
8
8
|
class Qpid
|
|
9
|
-
VERSION = '0.1.
|
|
9
|
+
VERSION = '0.1.3'
|
|
10
10
|
|
|
11
11
|
class SearchItem
|
|
12
12
|
include HappyMapper
|
|
@@ -82,7 +82,7 @@ class Qpid
|
|
|
82
82
|
case xml = client.get_content(function_uri(:updatestatus, mrn))
|
|
83
83
|
when /<message>NO PATIENT<\/message>/
|
|
84
84
|
raise Qpid::NoPatientError.new(mrn)
|
|
85
|
-
when /<message>NEW<\/message>/
|
|
85
|
+
when /<message>(?:NEW|UNKNOWN STATUS)<\/message>/
|
|
86
86
|
nil
|
|
87
87
|
when /<lastupdate>(.+)<\/lastupdate>/
|
|
88
88
|
begin
|
|
@@ -183,4 +183,4 @@ class Qpid
|
|
|
183
183
|
def self.ondate(date)
|
|
184
184
|
todate(date) + " AND " + fromdate(date)
|
|
185
185
|
end
|
|
186
|
-
end
|
|
186
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<table id="report"><tr><td><pre>Accession Number: BS07W17636 Report Status: Final
|
|
2
|
+
Type: Surgical Pathology
|
|
3
|
+
Specimen Type: LEFT THIGH MASS
|
|
4
|
+
Procedure Date:
|
|
5
|
+
Ordering Provider: GAMZE AYATA M.D.
|
|
6
|
+
|
|
7
|
+
CASE: BS-07-W17636
|
|
8
|
+
PATIENT: PETER RABBITSKI
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Resident: Peter M Sadow, M.D., Ph.D.
|
|
12
|
+
Pathologist: Christopher D. M. Fletcher, M.D. FRCPath
|
|
13
|
+
|
|
14
|
+
PATHOLOGIC DIAGNOSIS:
|
|
15
|
+
|
|
16
|
+
CONSULT SLIDES FROM UMASS MEMORIAL, WORCESTER, MA
|
|
17
|
+
|
|
18
|
+
A. LEFT THIGH MASS BIOPSY (S07-16978):
|
|
19
|
+
|
|
20
|
+
HIGH GRADE SPINDLE CELL SARCOMA, likely myofibroblastic in type.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
Immunohistochemistry performed at BWH demonstrates the following staining
|
|
24
|
+
profile in tumor cells:
|
|
25
|
+
|
|
26
|
+
Positive: Desmin, SMA (multifocal)
|
|
27
|
+
Negative: GFAP, S100, CD34, Fast Myosin, Myf4
|
|
28
|
+
|
|
29
|
+
(See letter)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
CLINICAL DATA:
|
|
33
|
+
History: 51 year-old male with a large mass in the left thigh.
|
|
34
|
+
|
|
35
|
+
TISSUE SUBMITTED:
|
|
36
|
+
Consult slides.
|
|
37
|
+
|
|
38
|
+
GROSS DESCRIPTION:
|
|
39
|
+
Received from UMASS MEMORIAL, THREE BIOTECH, ONE INNOVATION DRIVE, WORCESTER,
|
|
40
|
+
MA, 01655, are four (4) slides and one (1) block.
|
|
41
|
+
|
|
42
|
+
One (1) block is labeled \"S07-16978\" and sublabeled \"B\" and four (4 HE) stained
|
|
43
|
+
slides are labeled \"S07-16978\" and sublabeled \"FS1\", \"A\", \"B\" and \"D\" which
|
|
44
|
+
correspond to left thigh mass performed on 4/20/2007, according to the
|
|
45
|
+
accompanying pathology report bearing the patient\"s name and a letter from Dr.
|
|
46
|
+
Gamze Ayata.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
By his/her signature below, the senior physician certifies that he/she
|
|
51
|
+
personally conducted a microscopic examination (\"gross only\" exam if so stated)
|
|
52
|
+
of the described specimen(s) and rendered or confirmed the diagnosis(es)
|
|
53
|
+
related thereto.
|
|
54
|
+
|
|
55
|
+
Final Diagnosis by Christopher D. M. Fletcher M.D. FRCPath, Electronically
|
|
56
|
+
signed on 4/30/2007
|
|
57
|
+
|
|
58
|
+
</pre></td></tr></table>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<table id="report"><tr><th class="report_header">CDR Lab: RAD - CTBxRetper 07/01/2010</th></tr><tr><th>Site: MGH Acc: 301654345 Status: Final</th></tr><a href= "http://radamicas1.mgh.harvard.edu/servlet/com.amicas.servlet.integration.EmbeddedGateway?AN=301654345"> Image </a><tr><td><pre>Exam Number: 301654345 Report Status: Final
|
|
2
|
+
Type: CTBxRetper
|
|
3
|
+
Date/Time: 07/01/2010 10:41
|
|
4
|
+
Exam Code: CTBXRE
|
|
5
|
+
Ordering Provider: Temel, Jennifer S MD
|
|
6
|
+
|
|
7
|
+
HISTORY:
|
|
8
|
+
SEE HX - LUNG CA WITH NEW RP SOFT TISSUE
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
REPORT PROCEDURE:
|
|
12
|
+
CT-Guided Retroperitoneal Soft Tissue Biopsy
|
|
13
|
+
|
|
14
|
+
INDICATION: T2N1M0 stage IIB NSCLC s/p RM and RL bilobectomy, s/p 4
|
|
15
|
+
cycles of adjuvant chemotherapy. Follow-up PET/CT dated 6/16/10
|
|
16
|
+
revealed a PET positive retroperitoneal soft tissue new from CT of
|
|
17
|
+
2009.
|
|
18
|
+
Allergies: Penicillin
|
|
19
|
+
Patient held 81 mg Aspirin approximately 10 days before the procedure.
|
|
20
|
+
|
|
21
|
+
OPERATORS:
|
|
22
|
+
FELLOW: Dr. Nisha Sainani
|
|
23
|
+
ATTENDING: Dr. Ronald Arellano was present for the entire procedure
|
|
24
|
+
|
|
25
|
+
CONSENT:
|
|
26
|
+
The patient was informed of the nature of the proposed procedure.
|
|
27
|
+
The purposes, alternatives, risks, and benefits were explained and
|
|
28
|
+
discussed. All questions were answered and written consent was
|
|
29
|
+
obtained.
|
|
30
|
+
|
|
31
|
+
ANESTHESIA: Intravenous conscious sedation was administered by
|
|
32
|
+
radiology nursing. Continuous hemodynamic and respiratory monitoring
|
|
33
|
+
was performed, including the use of pulse oximetry.
|
|
34
|
+
|
|
35
|
+
START TIME: 9:25 am
|
|
36
|
+
STOP TIME: 10:45 am
|
|
37
|
+
|
|
38
|
+
MEDICATIONS:
|
|
39
|
+
Fentanyl (mcg) IV 200 mcg
|
|
40
|
+
Versed (mg) IV 4 mg
|
|
41
|
+
1% Local Lidocaine
|
|
42
|
+
|
|
43
|
+
SUPPLIES:
|
|
44
|
+
22 G x 20 cm Chiba needle (Cook)
|
|
45
|
+
18 G x 20 cm Temno (CardinalHealth) co-axial biopsy needle set
|
|
46
|
+
|
|
47
|
+
INFECTION CONTROL: All elements of maximal sterile barrier technique
|
|
48
|
+
followed including: cap, mask, sterile gown, sterile gloves, a large
|
|
49
|
+
sterile sheet, hand hygiene, 2% chlorhexidine for cutaneous
|
|
50
|
+
antisepsis (or acceptable alternative antiseptics, per current
|
|
51
|
+
guideline).
|
|
52
|
+
|
|
53
|
+
PROCEDURE:
|
|
54
|
+
The patient was placed in right lateral decubitus position on the CT
|
|
55
|
+
table. A "timeout" was performed before the start of the procedure
|
|
56
|
+
with the patient on the table to verify the correct patient,
|
|
57
|
+
procedure and position. Preliminary axial CT images were obtained
|
|
58
|
+
with radioopaque cutaneous grid. The retroperitoneal peri-aortic
|
|
59
|
+
soft tissue was localized. After assessing the most direct access to
|
|
60
|
+
the lesion from the left side, the patient's skin was prepped and
|
|
61
|
+
draped in the usual sterile fashion. 1% Lidocaine local anesthetic
|
|
62
|
+
was infiltrated in the skin and subcutaneous tissues. Subsequently,
|
|
63
|
+
a 17 gauge introducer needle was advanced through left
|
|
64
|
+
retroperitoneum into the lesion. Fine needle aspirations (22 gauge)
|
|
65
|
+
and and 18 gauge core biopsy samples (three) of the mass obtained and
|
|
66
|
+
were sent for cytology and surgical pathology analysis.
|
|
67
|
+
|
|
68
|
+
Postbiopsy images demonstrated no hemorrhage and few pockets of air
|
|
69
|
+
in the retroperitoneum.
|
|
70
|
+
|
|
71
|
+
The patient tolerated the procedure well and was transported to the
|
|
72
|
+
recovery area in stable condition.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
IMPRESSION:
|
|
76
|
+
CT GUIDED BIOPSY OF RETROPERITONEAL SOFT TISSUE.
|
|
77
|
+
|
|
78
|
+
PLAN:
|
|
79
|
+
Follow up on biopsy results.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
RADIOLOGISTS: SIGNATURES:
|
|
83
|
+
Sainani, Nisha I MBBS
|
|
84
|
+
Arellano, Ronald S Attending Arellano, Ronald S Attending
|
|
85
|
+
|
|
86
|
+
</pre></td></tr></table>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version='1.0'?><searchlist><mrn>3000888</mrn><request>type:PAT</request><query><search>{type:PAT}</search><searchitem><type>PAT</type><MID>4417067</MID><Scheduledate>2007-07-17</Scheduledate><site></site><status></status><desc><![CDATA[Surgical Pathology]]></desc><context><![CDATA[]]></context></searchitem><searchitem><type>PAT</type><MID>4318532</MID><Scheduledate>2007-04-26</Scheduledate><site></site><status></status><desc><![CDATA[Surgical Pathology]]></desc><context><![CDATA[]]></context></searchitem><searchitem><type>PAT</type><MID>4313382</MID><Scheduledate>2007-04-23</Scheduledate><site></site><status></status><desc><![CDATA[Surgical Pathology]]></desc><context><![CDATA[]]></context></searchitem></query></searchlist>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version='1.0'?><searchlist><request>type:PAT and fromdate:\"07/01/2007\"</request><query><search>({type:PAT} AND {fromdate:07/01/2007})</search><searchitem><type>PAT</type><MRN>3000888</MRN><MID>4417067</MID><Scheduledate>2007-07-17</Scheduledate><site></site><status></status><desc><![CDATA[Surgical Pathology]]></desc><context><![CDATA[]]></context></searchitem></query></searchlist>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version='1.0'?>
|
|
2
|
+
<searchlist>
|
|
3
|
+
<mrn>3000888</mrn>
|
|
4
|
+
<request>type:RAD</request>
|
|
5
|
+
<query>
|
|
6
|
+
<search>{type:RAD}</search>
|
|
7
|
+
<searchitem>
|
|
8
|
+
<type>RAD</type>
|
|
9
|
+
<MID>63580395</MID>
|
|
10
|
+
<Scheduledate>2010-07-01</Scheduledate>
|
|
11
|
+
<site></site>
|
|
12
|
+
<status></status>
|
|
13
|
+
<desc><![CDATA[CTBxRetper]]></desc>
|
|
14
|
+
<context><![CDATA[]]></context>
|
|
15
|
+
</searchitem>
|
|
16
|
+
</query>
|
|
17
|
+
</searchlist>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
require 'cgi'
|
|
2
|
+
require 'yaml'
|
|
3
|
+
require 'logger'
|
|
4
|
+
require 'date'
|
|
5
|
+
require 'active_support'
|
|
6
|
+
require 'fake_web'
|
|
7
|
+
|
|
8
|
+
class MockHttpClient
|
|
9
|
+
attr_accessor :data, :logger, :username, :password, :next_response_nil
|
|
10
|
+
attr_reader :updatetimes, :delays, :reload_times
|
|
11
|
+
|
|
12
|
+
FakeWeb.allow_net_connect = false
|
|
13
|
+
|
|
14
|
+
def initialize(yaml_file, logger = nil)
|
|
15
|
+
self.logger = logger || Logger.new(STDERR)
|
|
16
|
+
config = YAML.load_file(yaml_file)
|
|
17
|
+
config[:content].each do |item|
|
|
18
|
+
content = File.open(File.join(File.dirname(__FILE__), "content", item[:content])) do |f|
|
|
19
|
+
f.read
|
|
20
|
+
end
|
|
21
|
+
self.logger.info("Setting up test URI #{item[:url]}")
|
|
22
|
+
FakeWeb.register_uri(:get, item[:url], :body => content)
|
|
23
|
+
end
|
|
24
|
+
@updatetimes = {}
|
|
25
|
+
@reload_times = {}
|
|
26
|
+
@delays = {}
|
|
27
|
+
config[:patients].each_pair do |mrn, times|
|
|
28
|
+
@updatetimes[mrn] = DateTime.parse(times[:updatetime])
|
|
29
|
+
@delays[mrn] = times[:delay]
|
|
30
|
+
end
|
|
31
|
+
yield self if block_given?
|
|
32
|
+
self
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def set_auth(foo, username, password)
|
|
36
|
+
logger.info("Setting username and password, username is \"#{username}\"")
|
|
37
|
+
self.username = username
|
|
38
|
+
self.password = password
|
|
39
|
+
self
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.parse_uri(uri)
|
|
43
|
+
uri = uri.respond_to?(:query) ? uri : URI::parse(uri)
|
|
44
|
+
terms = Hash.new(nil)
|
|
45
|
+
uri.query.split('&').each do |el|
|
|
46
|
+
el =~ /^(.+)=(.+)$/
|
|
47
|
+
terms[$1] = CGI.unescape($2)
|
|
48
|
+
end
|
|
49
|
+
terms
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def get_content(uri)
|
|
53
|
+
uri = uri.respond_to?(:host) ? uri : URI::parse(uri)
|
|
54
|
+
logger.info("Getting content for URI [#{uri.to_s}]")
|
|
55
|
+
req = MockHttpClient.parse_uri(uri)
|
|
56
|
+
raise "Must specify a USER in a QPID URI (got [#{uri.to_s}])" unless req["USER"]
|
|
57
|
+
raise "Must specify a MRN in a QPID URI (got [#{uri.to_s}])" unless req["MRN"]
|
|
58
|
+
|
|
59
|
+
# Check if we're giving junk next
|
|
60
|
+
if next_response_nil && next_response_nil > 0
|
|
61
|
+
logger.warn "Giving null response (#{next_response_nil - 1} left)"
|
|
62
|
+
self.next_response_nil = next_response_nil - 1
|
|
63
|
+
return nil
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Check to see if we know about this patient
|
|
67
|
+
unless updatetimes[req["MRN"]]
|
|
68
|
+
return no_patient_response
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Otherwise, figure out what we're doing
|
|
72
|
+
case req["function"]
|
|
73
|
+
when "updatestatus"
|
|
74
|
+
updatestatus_response(req["MRN"])
|
|
75
|
+
when "reload"
|
|
76
|
+
status = "UPDATING"
|
|
77
|
+
delay = delays[req["MRN"]] || 5
|
|
78
|
+
if reload_times[req["MRN"]]
|
|
79
|
+
if DateTime.now > reload_times[req["MRN"]].since(delay)
|
|
80
|
+
updatetimes[req["MRN"]] = reload_times[req["MRN"]].since(delay)
|
|
81
|
+
reload_times.delete(req["MRN"])
|
|
82
|
+
status = "OK"
|
|
83
|
+
end
|
|
84
|
+
else
|
|
85
|
+
reload_times[req["MRN"]] = DateTime.now
|
|
86
|
+
end
|
|
87
|
+
updatestatus_response(req["MRN"], status)
|
|
88
|
+
when "search"
|
|
89
|
+
raise "Tried to use the search function without a search parameter [#{uri.to_s}]" unless req["search"]
|
|
90
|
+
Net::HTTP.get(uri)
|
|
91
|
+
when "report"
|
|
92
|
+
raise "Tried to use the report function without a type parameter" unless req["type"]
|
|
93
|
+
raise "Tried to use the report function without a MID parameter" unless req["MID"]
|
|
94
|
+
Net::HTTP.get(uri)
|
|
95
|
+
else
|
|
96
|
+
raise "Got an apparently invalid QPID function \"#{req.function}\" [#{uri.to_s}]"
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def updatestatus_response(mrn, status = nil)
|
|
101
|
+
if updatetime = updatetimes[mrn]
|
|
102
|
+
hours_ago = (DateTime.now - updatetime).to_f * 24.0
|
|
103
|
+
status ||= (hours_ago < 1) ? "OK" : "STALE"
|
|
104
|
+
"<updatestatus><lastupdate>#{updatetime.strftime("%Y-%m-%dT%H:%M:%S")}</lastupdate><message>#{status}</message></updatestatus>"
|
|
105
|
+
else
|
|
106
|
+
no_patient_response
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def no_patient_response
|
|
111
|
+
"<updatestatus><message>NO PATIENT</message></updatestatus>"
|
|
112
|
+
end
|
|
113
|
+
end
|
data/test/qpid.yml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
:patients:
|
|
3
|
+
"3000888":
|
|
4
|
+
:updatetime: 2010-06-12 12:15:23 0
|
|
5
|
+
:delay: 3
|
|
6
|
+
"1358881":
|
|
7
|
+
:updatetime: 2010-07-15 13:15:55 0
|
|
8
|
+
:delay: 2
|
|
9
|
+
:content:
|
|
10
|
+
- :url: http://qpid.example.org/path/to/servlet?xml=1&search=type%3APAT&function=search&MRN=3000888&USER=realuser
|
|
11
|
+
:content: 3000888_search_type.xml
|
|
12
|
+
- :url: http://qpid.example.org/path/to/servlet?xml=1&search=type%3ARAD&function=search&MRN=3000888&USER=realuser
|
|
13
|
+
:content: 3000888_search_type_rad.xml
|
|
14
|
+
- :url: http://qpid.example.org/path/to/servlet?xml=1&search=type%3APAT+and+fromdate%3A%2207%2F01%2F2007%22&function=search&MRN=3000888&USER=realuser
|
|
15
|
+
:content: 3000888_search_type_fromdate.xml
|
|
16
|
+
- :url: http://qpid.example.org/path/to/servlet?type=PAT&xml=1&function=report&MID=4417067&MRN=3000888&USER=realuser
|
|
17
|
+
:content: 3000888_report_pat_4313382_1.xml
|
|
18
|
+
- :url: http://qpid.example.org/path/to/servlet?type=PAT&xml=1&function=report&MID=4313382&MRN=3000888&USER=realuser
|
|
19
|
+
:content: 3000888_report_pat_4313382_1.xml
|
|
20
|
+
- :url: http://qpid.example.org/path/to/servlet?type=RAD&xml=1&function=report&MID=63580395&MRN=3000888&USER=realuser
|
|
21
|
+
:content: 3000888_report_rad_63580395.xml
|
metadata
CHANGED
|
@@ -1,128 +1,149 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: qpid
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 1
|
|
9
|
-
- 2
|
|
10
|
-
version: 0.1.2
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.3
|
|
5
|
+
prerelease:
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
13
|
-
- Tarik K. Alkasab
|
|
7
|
+
authors:
|
|
8
|
+
- Tarik K. Alkasab, MD, PhD
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
dependencies:
|
|
21
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2012-10-03 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
22
15
|
name: happymapper
|
|
23
|
-
|
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
25
17
|
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- -
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
hash: 19
|
|
30
|
-
segments:
|
|
31
|
-
- 0
|
|
32
|
-
- 3
|
|
33
|
-
- 0
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
34
21
|
version: 0.3.0
|
|
35
22
|
type: :runtime
|
|
36
|
-
version_requirements: *id001
|
|
37
|
-
- !ruby/object:Gem::Dependency
|
|
38
|
-
name: httpclient
|
|
39
23
|
prerelease: false
|
|
40
|
-
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 0.3.0
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: httpclient
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
41
33
|
none: false
|
|
42
|
-
requirements:
|
|
43
|
-
- -
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
45
|
-
hash: 119
|
|
46
|
-
segments:
|
|
47
|
-
- 2
|
|
48
|
-
- 1
|
|
49
|
-
- 5
|
|
50
|
-
- 2
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
51
37
|
version: 2.1.5.2
|
|
52
38
|
type: :runtime
|
|
53
|
-
version_requirements: *id002
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: hoe
|
|
56
39
|
prerelease: false
|
|
57
|
-
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 2.1.5.2
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: rdoc
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
49
|
none: false
|
|
59
|
-
requirements:
|
|
60
|
-
- -
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
|
|
63
|
-
segments:
|
|
64
|
-
- 2
|
|
65
|
-
- 3
|
|
66
|
-
- 3
|
|
67
|
-
version: 2.3.3
|
|
50
|
+
requirements:
|
|
51
|
+
- - ~>
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '3.10'
|
|
68
54
|
type: :development
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ~>
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '3.10'
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
63
|
+
name: newgem
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
none: false
|
|
66
|
+
requirements:
|
|
67
|
+
- - ! '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 1.5.3
|
|
70
|
+
type: :development
|
|
71
|
+
prerelease: false
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
74
|
+
requirements:
|
|
75
|
+
- - ! '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: 1.5.3
|
|
78
|
+
- !ruby/object:Gem::Dependency
|
|
79
|
+
name: hoe
|
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
|
81
|
+
none: false
|
|
82
|
+
requirements:
|
|
83
|
+
- - ~>
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '3.1'
|
|
86
|
+
type: :development
|
|
87
|
+
prerelease: false
|
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
90
|
+
requirements:
|
|
91
|
+
- - ~>
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '3.1'
|
|
94
|
+
description: Interface to QPID, the Queriable Patient Inference Dossier system.
|
|
95
|
+
email:
|
|
96
|
+
- talkasab@partners.org
|
|
73
97
|
executables: []
|
|
74
|
-
|
|
75
98
|
extensions: []
|
|
76
|
-
|
|
77
|
-
extra_rdoc_files:
|
|
99
|
+
extra_rdoc_files:
|
|
78
100
|
- History.txt
|
|
79
101
|
- Manifest.txt
|
|
80
|
-
|
|
102
|
+
- README.rdoc
|
|
103
|
+
files:
|
|
81
104
|
- History.txt
|
|
82
105
|
- Manifest.txt
|
|
83
106
|
- README.rdoc
|
|
84
107
|
- Rakefile
|
|
85
108
|
- lib/qpid.rb
|
|
86
109
|
- script/console
|
|
87
|
-
- script/destroy
|
|
88
|
-
- script/generate
|
|
89
110
|
- test/test_helper.rb
|
|
90
111
|
- test/test_qpid.rb
|
|
91
|
-
|
|
112
|
+
- test/content/3000888_report_pat_4313382_1.xml
|
|
113
|
+
- test/content/3000888_report_rad_63580395.xml
|
|
114
|
+
- test/content/3000888_search_type.xml
|
|
115
|
+
- test/content/3000888_search_type_fromdate.xml
|
|
116
|
+
- test/content/3000888_search_type_rad.xml
|
|
117
|
+
- test/mock_http_client.rb
|
|
118
|
+
- test/qpid.yml
|
|
119
|
+
- test/qpid_test_data.yml
|
|
120
|
+
- .gemtest
|
|
92
121
|
homepage: http://github.com/talkasab/qpid
|
|
93
122
|
licenses: []
|
|
94
|
-
|
|
95
123
|
post_install_message:
|
|
96
|
-
rdoc_options:
|
|
124
|
+
rdoc_options:
|
|
97
125
|
- --main
|
|
98
126
|
- README.rdoc
|
|
99
|
-
require_paths:
|
|
127
|
+
require_paths:
|
|
100
128
|
- lib
|
|
101
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
130
|
none: false
|
|
103
|
-
requirements:
|
|
104
|
-
- -
|
|
105
|
-
- !ruby/object:Gem::Version
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
- 0
|
|
109
|
-
version: "0"
|
|
110
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
|
+
requirements:
|
|
132
|
+
- - ! '>='
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: '0'
|
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
136
|
none: false
|
|
112
|
-
requirements:
|
|
113
|
-
- -
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
|
|
116
|
-
segments:
|
|
117
|
-
- 0
|
|
118
|
-
version: "0"
|
|
137
|
+
requirements:
|
|
138
|
+
- - ! '>='
|
|
139
|
+
- !ruby/object:Gem::Version
|
|
140
|
+
version: '0'
|
|
119
141
|
requirements: []
|
|
120
|
-
|
|
121
142
|
rubyforge_project: qpid
|
|
122
|
-
rubygems_version: 1.
|
|
143
|
+
rubygems_version: 1.8.24
|
|
123
144
|
signing_key:
|
|
124
145
|
specification_version: 3
|
|
125
|
-
summary: Interface to
|
|
126
|
-
test_files:
|
|
146
|
+
summary: Interface to QPID, the Queriable Patient Inference Dossier system.
|
|
147
|
+
test_files:
|
|
127
148
|
- test/test_helper.rb
|
|
128
149
|
- test/test_qpid.rb
|
data/script/destroy
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
require 'rubigen'
|
|
6
|
-
rescue LoadError
|
|
7
|
-
require 'rubygems'
|
|
8
|
-
require 'rubigen'
|
|
9
|
-
end
|
|
10
|
-
require 'rubigen/scripts/destroy'
|
|
11
|
-
|
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
-
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
require 'rubigen'
|
|
6
|
-
rescue LoadError
|
|
7
|
-
require 'rubygems'
|
|
8
|
-
require 'rubigen'
|
|
9
|
-
end
|
|
10
|
-
require 'rubigen/scripts/generate'
|
|
11
|
-
|
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
-
RubiGen::Scripts::Generate.new.run(ARGV)
|