nextgenhealthcare / connect Goto Github PK
View Code? Open in Web Editor NEWThe swiss army knife of healthcare integration.
License: Other
The swiss army knife of healthcare integration.
License: Other
Searching MC events would be improved with two key changes:
Use case #1 - I am an MC admin who is tracking down a stopped channel in MC. I need to be able to quickly find the stop channels event. If I can select this from a list I can SEE the event type I want instead of relying on the current free-text "Name" search field.
Use case #2 - I am an MC admin tracking down an issue in MC. When I view events I see MANY entries for the Data Pruner. I want to be able to EXCLUDE those events from my view so I can see all other events in time-order to triage the issue I want to solve.
Replace the SQL parsing code in the user interface with a more robust package to handle any type of query.
http://www.experlog.com/gibello/zql/
Imported Issue. Original Details:
Jira Issue Key: MIRTH-11
Reporter: geraldb
Created: 2006-09-07T11:46:37.000-0700
I have created a channel of type INBOUND with a pattern of type ROUTER.
The status display correctly displays the number of messages received and send
The Destination correctly receives the messages going through that channel.
However the "Channel Messages" window only shows the received messages. I was expecting to see the send messages.
Note that the channel is transforming the messages before sending then to the destination, so being able to see those messages will enable the user to see the result of the transformation from the Mirth Client GUI.
As usual thanks for the help.
Regards
Eric
Imported Issue. Original Details:
Jira Issue Key: MIRTH-3
Reporter: eric
Created: 2006-09-04T01:34:21.000-0700
The Swagger 2.0 documentation requires an info block, which contains a title, a description (optional), and the version of the API. Mirth Connect generates an info block which contains only the API version number.
When adding mapping steps in the transformer editor, the name of the step should reflect the name of the variable being mapped. As the variable name is changed it should update in the step listing.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-4
Reporter: chrisl
Created: 2006-09-05T10:00:58.000-0700
I have an external library that is living in custom_lib/library.jar
. In order to load the library, I created a step in the source tab to load it and store it in globalChannelMap('lib')
.
var su = globalChannelMap.get('su');
try {
if(su === null) {
globalChannelMap.put('su', com.domain.package.Utils(channelName));
su = globalChannelMap.get('su');
var libInfo =com.domain.package.LibraryInfo();
logger.info(":::: LOADING LIB :::: " + libInfo.getVersion() + " " + channelName);
}
} catch (error) {
logger.error(channelName + " :::: PACKAGE UTILS :::: " + " Something went wrong loading library " + error);
}
I have no issues utilizing the library on any step on the source, however, when I start working on destinations I need to globalChannelMap.get('su')
per destination.
My understanding of globalChannelMap()
is that the variable is available global to the channel and across all messages.
How I can load a jar
once to be accessible to source and destinations for every msg?
Quick question about mirth utilizing custom libraries. I'm wondering if I can have a build process in some CI/CD repo that adds a jar
to the custom_lib
folder and have Mirth read it without bouncing Mirth.
A nice want to have feature for mirth would be custom validation filtering.
Nowadays (version 1.1.0) Mirth uses no HL7 messages validation.
As you can see in http://svn.sourceforge.net/viewvc/mirth/trunk/server/src/com/webreach/mirth/server/mule/util/ER7Util.java?view=markup
PipeParser pipeParser = new PipeParser();
// disables all message validation
pipeParser.setValidationContext(new NoValidation());
and
XMLParser xmlParser = new DefaultXMLParser();
// disables all message validation
xmlParser.setValidationContext(new NoValidation());
the default HAPI validation mechanism (DefaultValidation - see http://hl7api.cvs.sourceforge.net/hl7api/hapi/ca/uhn/hl7v2/validation/impl/DefaultValidation.java?view=markup) is disabled/overriden with no validation (NoValidation - see http://hl7api.cvs.sourceforge.net/hl7api/hapi/ca/uhn/hl7v2/validation/impl/NoValidation.java?view=markup)
Now we could implement custom validation into Mirth (next to filtering and transforming) for every destination.
Something like right click on a destination -> Edit Validation
Now you could see a screen with a list with 4 columns where you can add your custom rules:
1st column: the hl7 version (* for all the versions)
2nd column: the scope (ex: "NM", "ST", "ID") (select from a list of all the available datatypes)
3th column: the rule name (ex: TrimLeadingWhitespace, SizeRule, RegexPrimitiveRule)
4th column: the rule parameter, this is not for every rule required
Now whenever the message get parsed instead of the NoValidation we can use our own validation!
If the message doesn't pass the validation the message will never get to it's destination and can be logged or stored in an error queue.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-1
Reporter: dabuddhaman
Created: 2006-08-29T12:46:58.000-0700
Mirth should be able to process, encode and transform EDI messages.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-17
Reporter: chrisl
Created: 2006-09-08T11:40:44.000-0700
3.6.0 gives errors on channel import.
On a 3.5.1 exported file it ended up importing anyway.
On a 3.3.1 exported file it never works.
Channel "HL7 Sickbay ADT Dispatch - Production" is invalid. Original cause:
null
java.lang.AbstractMethodError
at com.mirth.connect.model.converters.MigratableConverter.migrateElement(MigratableConverter.java:147)
at com.mirth.connect.model.converters.MigratableConverter.unmarshal(MigratableConverter.java:89)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257)
at com.mirth.connect.model.converters.MigratableConverter.unmarshal(MigratableConverter.java:101)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257)
at com.mirth.connect.model.converters.MigratableConverter.unmarshal(MigratableConverter.java:101)
at com.mirth.connect.model.converters.ChannelConverter.unmarshal(ChannelConverter.java:79)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1185)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1157)
at com.mirth.connect.model.converters.ObjectXMLSerializer.deserialize(ObjectXMLSerializer.java:281)
at com.mirth.connect.client.ui.ChannelPanel.importChannel(ChannelPanel.java:1425)
at com.mirth.connect.client.ui.ChannelPanel.doImportChannel(ChannelPanel.java:1413)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
at java.beans.EventHandler.invokeInternal(Unknown Source)
at java.beans.EventHandler.access$000(Unknown Source)
at java.beans.EventHandler$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.beans.EventHandler.invoke(Unknown Source)
at com.sun.proxy.$Proxy46.actionPerformed(Unknown Source)
at org.jdesktop.swingx.action.BoundAction.actionPerformed(BoundAction.java:231)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at org.jdesktop.swingx.JXHyperlink.fireActionPerformed(JXHyperlink.java:264)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
In the Variable List on a destination, global variable should only appear if they occur in a previous destination's transformer.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-9
Reporter: chrisl
Created: 2006-09-06T01:43:44.000-0700
The checkbox "Add as global variable" is not valid for Outgoing messages built using the HL7 Message Builder pane on the outgoing message transformer pane. This needs to be removed.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-22
Reporter: chrisl
Created: 2006-09-11T03:34:53.000-0700
When creating a channel with multiple destinations Mirth will prompt that your channel configuration is incomplete when choosing to save the channel. Clicking validate manually shows "valid channel".
Steps to reproduce:
Imported Issue. Original Details:
Jira Issue Key: MIRTH-7
Reporter: chrisl
Created: 2006-09-05T23:14:03.000-0700
Whenever the file-reader encounters an error with a file operation it uses the same message: "The file already exists". This needs to be updated to show the actual exception that happened. See below for more information.
Message : Failed to move file "/mnt/hl7data/20060908160921.18968" to "/tmp/hl7testdata3/0edfcdfb-4295-11db-a11b-e267260bf594". The file already exists.
Type : org.mule.MuleException
Code : 11004
JavaDoc : http://mule.codehaus.org/docs/apidocs/org/mule/MuleException.html
Exception stack is:
Root Exception stack trace:
org.mule.MuleException: Failed to move file "/mnt/hl7data/20060908160921.18968" to "/tmp/hl7testdata3/0edfcdfb-4295-11db-a11b-e267260bf594". The file already exists.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-28
Reporter: chrisl
Created: 2006-09-12T11:29:21.000-0700
After creating several destinations and transformers, the channel save prompt appears on every action in the UI. The only fix is to restart the client.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-10
Reporter: chrisl
Created: 2006-09-06T03:12:40.000-0700
When creating a Router channel with multiple destinations, only the filters and transformers are fired in order. The actual Mule updates are done in parallel.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-20
Reporter: chrisl
Created: 2006-09-08T13:33:16.000-0700
When creating mappings in the HL7 message builder (outgoing channels) the mapping field automatically gets '.text()[0]' added. This is the valid syntax for variables from a database call (msg[]), however it breaks access to the globalMap.
The proper behavior would be to add .text()[0] to the dragged database variable (such that the wrapping would be msg['VARNAME'].text()[0]).
Imported Issue. Original Details:
Jira Issue Key: MIRTH-24
Reporter: chrisl
Created: 2006-09-11T04:39:53.000-0700
hi, I try enable appointment with fhir complement, all work fine, but when i try update date via patch request get error, look like option PATCH don't load in appointment.
access control allow methods not show PATCH.
Error.
Patch Method enable in channel.
whit GET, POST, PUT method work fine, but i need PATCH.
Question is i do something wrong ?
If any plan to replace Rhino?
When I export a channel using mccommand (3.8.1), the exported file does not contain my pruning-settings.
Exported channel example from mirth connect client (does include pruning settings):
<exportData>
<metadata>
...
<pruningSettings>
<pruneContentDays>90</pruneContentDays>
<archiveEnabled>true</archiveEnabled>
</pruningSettings>
</metadata>
...
<dependencyIds>
<string>0c776d8a-870a-440d-b5fd-af1a47143917</string>
</dependencyIds>
</exportData>
Exported channel example using mccommand (does not include pruning settings):
<exportData>
<dependencyIds>
<string>0c776d8a-870a-440d-b5fd-af1a47143917</string>
</dependencyIds>
</exportData>
Hello,
For example, this value:
becomes this (with GET /server/configurationMap
):
<entry>
<string>RALBOL_EMP-RIS_RestApi2File_SRV_FS1_USR</string>
<com.mirth.connect.util.ConfigurationProperty>
<value>snecmptMirthCiges</value>
<comment></comment>
</com.mirth.connect.util.ConfigurationProperty>
</entry>
The channel creation wizard should have a drop-down in the Channel Overview step that allows the user to choose that channel's protocol. For now the only option will be HL7. This should do Channel.setProtocol to Protocol.HL7.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-16
Reporter: geraldb
Created: 2006-09-08T10:22:27.000-0700
Didn't see that issues are enabled here, I posted the question on Stackoverflow, please answer where ever you want I'll copy your answer to sackoverflow/github if you don't mind :)
Hello,
JMS allows to add properties to messages so that subscribers can filter messages using selectors.
Please, consider adding properties to the JMS messages. In the client JMS connector UI you could add a "properties" table tha allows the user to add property names and values. The values of the properties could come, for example, from the channel map or other variables.
Regards.
Replace the Ostermiller syntax highlighting package with one that is faster, more lightweight, and doesn't throw a NullPointerException randomly.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-13
Reporter: geraldb
Created: 2006-09-07T11:48:56.000-0700
Dragging and dropping variables from the variable list doesn't work the first time its done, only subsequent times.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-18
Reporter: geraldb
Created: 2006-09-08T12:11:03.000-0700
Take a look at these lines which are called every time you start the server.
There is some circumstance[1] where those lines will result in a zero byte keystore file on disk. That's worse than the file being missing. The server will create a new file if it is missing, but it will fail to start if the keystore file is zero bytes (corrupted). And as long as that zero-byte keystore file remains there, the server will continue to fail to start, even if all other issues are addressed.
I think that the simplest fix that will prevent the problem I experienced is to treat a zero-byte file the same way you treat a missing file: make a new one.
You'd make that change here:
..Just change that line to something like this:
if (keyStoreFile.exists() && keyStoreFile.canRead() && keyStoreFile.length() > 0) {
But, please consider reviewing this whole initializeSecuritySettings()
method first. Is re-writing that JKS file every server start really what you want to do? (Is this not where you store the self-signed cert? How come my browser doesn't notice if it is regenerated all the time? Is it generated in a deterministic manner? Is that good?) I have not reviewed this method, these are just some questions that come to mind after glancing over it. Ideally each of those concerns turns out to be nothing.
1: Filesystem full (on NTFS, if that matters) while server is starting, possibly including other processes trying to write (claiming any free blocks) at the same time.
Currently the Mirth Client pre-fills in the server address with "localhost" on the login-dialog. If possible, this should be the remote server's IP address.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-6
Reporter: chrisl
Created: 2006-09-05T12:01:24.000-0700
Hi ! Thank you for this impressive work. Unfortunately there is a bug in the administrator launcher (v1.0.0).
If the variable http.contextpath
(in mirth.properties
) is defined other than root, the administrator launcher fails to connect with the error "Unable to retrieve payload from HTTP request. URI: https://10.33.25.176:9443/webstart"
.
As can be seen in this message, the context does not appear. So it seems that one step of the connection attempt removes it.
Our team wrote/writing a java library to be used within connect. We are running into an issue where I need to pass msg["some..."]
as a parameter without the .toString()
. Inside the function I want to determine if the msg["some..."]
is an xml
or json
.
From the library I logger.warn(":::: JAVA TYPE :::: " + value.javaClass) // org.mozilla.javascript.xmlimpl.XMLList
. Happened that this class comes from a private package.
Is there a work around or a way to work with the msg
object in the external library?
In other words, I want to stringify the XML that I'm passing.
The server should be augmented to transfer a custom message object that stores the following information:
Status (received, filtered, transformed, sent)
Date Received
Raw Data
Transformed Data
Encoded Data
This message object will be sent across the Mirth bus (through Filters, Transformers, Endpoints) and update it's state with the Message Registry at defined steps.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-15
Reporter: chrisl
Created: 2006-09-08T00:47:12.000-0700
Imported Issue. Original Details:
Jira Issue Key: MIRTH-27
Reporter: chrisl
Created: 2006-09-11T16:18:45.000-0700
Setup SVN to track issues with JIRA
Imported Issue. Original Details:
Jira Issue Key: MIRTH-19
Reporter: chrisl
Created: 2006-09-08T13:22:43.000-0700
The LLP Listener allows the user to input custom LLP characters, as well as choose the encoding. This encoding radio button needs a better label to indicate that it sets the expected encoding of the LLP characters, not of the message.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-5
Reporter: chrisl
Created: 2006-09-05T12:00:18.000-0700
The current version of NextGet Connect is affected by this issue.
Thus, if we import an archive previously created by the Data Pruner, the archive remains locked until the JMV dies.
Upgrading to Apache Commons VFS from 2.2 should do the trick (according to the release logs).
The message browser takes several seconds to load, even when contacting a server running on the localhost. The load-time increases the longer the server/client is running.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-23
Reporter: chrisl
Created: 2006-09-11T04:25:46.000-0700
Currently all mapping steps update the 'localMap'. All filters and transformers look for variables in the localMap, however in the case of multiple destinations one would have to duplicate mappings for each endpoint.
There should either be the option to have a Global Mapping in the transformer that adds mappings to the globalMap or another map object called a "channelMap" which holds its state across an entire channel.
In both cases, transformers and endpoints will need to be updated to accept two map objects (and all variable replacements, ie SQL, will need to check both the local, global or channelMaps.).
Imported Issue. Original Details:
Jira Issue Key: MIRTH-2
Reporter: chrisl
Created: 2006-09-01T17:22:35.000-0700
Changing the destination endpoint type clears any transformation or filter scripts defined.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-8
Reporter: chrisl
Created: 2006-09-06T01:08:43.000-0700
Message board shows html entities (") rather than actual characters. Check security settings.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-21
Reporter: chrisl
Created: 2006-09-08T14:09:06.000-0700
A POST to /channels requires an associated JSON string in order to create a channel. This JSON string is, itself, a required field. However, the schema does not specify which, if any, key/value pairs in the JSON block are required. All of these settings appear to be optional, because none of them are defined as required:
Channel {
id (string, optional),
nextMetaDataId (integer, optional),
name (string, optional),
description (string, optional),
revision (integer, optional),
sourceConnector (Connector, optional),
destinationConnectors (Array[Connector], optional),
preprocessingScript (string, optional),
postprocessingScript (string, optional),
deployScript (string, optional),
undeployScript (string, optional),
properties (ChannelProperties, optional),
exportData (ChannelExportData, optional),
enabledDestinationConnectors (Array[Connector], optional),
purgedProperties (object, optional)
}
This is the case for all JSON content in swagger.json -- the JSON block is "required", but none of the k/v pairs within the JSON block are marked required, and therefore they are each "optional".
Have the ability to generate reports (PDF, HTML, or just email) for the Mirth server providing statistics for all of the channels (# messages, types of messages, average message size, etc.) This should be configured through the server settings in the UI.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-12
Reporter: geraldb
Created: 2006-09-07T11:47:36.000-0700
After importing a channel in 3.6.1 which has been created in 3.4.2, for some reason, all the SOAP actions are cleared.
Filling in the SOAP action manually is no option, since Connect will not save this field.
Only way to set the soap action is retrieving the operations list and browsing through the list of operations again.
When connected to Azure Managed SQL Database, random DB connection errors are popping up. See Stack trace:
ERROR 2019-11-25 15:09:06,727 [ChannelServlet Thread (Create channel) < qtp49212530-32] com.mirth.connect.server.controllers.DefaultConfigurationController: Could not store property: category=core, name=channelMetadata
org.apache.ibatis.exceptions.PersistenceException:
### Error rolling back transaction. Cause: java.sql.SQLException: Connection is closed
### Cause: java.sql.SQLException: Connection is closed
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.defaults.DefaultSqlSession.rollback(DefaultSqlSession.java:185)
at org.apache.ibatis.session.defaults.DefaultSqlSession.rollback(DefaultSqlSession.java:177)
at org.apache.ibatis.session.SqlSessionManager$SqlSessionInterceptor.invoke(SqlSessionManager.java:286)
at com.sun.proxy.$Proxy9.insert(Unknown Source)
at org.apache.ibatis.session.SqlSessionManager.insert(SqlSessionManager.java:195)
at com.mirth.connect.server.controllers.DefaultConfigurationController.saveProperty(DefaultConfigurationController.java:920)
at com.mirth.connect.server.controllers.DefaultConfigurationController.setChannelMetadata(DefaultConfigurationController.java:1076)
at com.mirth.connect.server.controllers.DefaultChannelController.updateChannelMetadata(DefaultChannelController.java:450)
at com.mirth.connect.server.controllers.DefaultChannelController.updateChannel(DefaultChannelController.java:412)
at com.mirth.connect.server.api.servlets.ChannelServlet.createChannel(ChannelServlet.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.mirth.connect.server.api.providers.MirthResourceInvocationHandlerProvider$1.invoke(MirthResourceInvocationHandlerProvider.java:219)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:471)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:425)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:383)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:336)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:223)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:864)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at com.mirth.connect.server.MethodFilter.doFilter(MethodFilter.java:37)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at com.mirth.connect.server.api.providers.ClickjackingFilter.doFilter(ClickjackingFilter.java:44)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at com.mirth.connect.server.api.providers.ApiOriginFilter.doFilter(ApiOriginFilter.java:71)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:531)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291)
at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:319)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:175)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:133)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:754)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:672)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Connection is closed
at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection$1.invoke(ProxyConnection.java:469)
at com.sun.proxy.$Proxy10.getAutoCommit(Unknown Source)
at com.zaxxer.hikari.pool.HikariProxyConnection.getAutoCommit(HikariProxyConnection.java)
at org.apache.ibatis.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:73)
at org.apache.ibatis.executor.BaseExecutor.rollback(BaseExecutor.java:214)
at org.apache.ibatis.executor.CachingExecutor.rollback(CachingExecutor.java:120)
at org.apache.ibatis.session.defaults.DefaultSqlSession.rollback(DefaultSqlSession.java:182)
... 72 more
I have downloaded the last version NextGen Connect 3.8.0
for Windows x64, which is a zip. I unzipped it and tried to start the jar mirth-server-launcher.jar
as adminstrator. But, I got the following error:
ERROR 2019-08-04 19:52:04,022 [Main Server Thread] com.mirth.connect.server.MirthWebServer: Could not load web app
MultiException[java.io.IOException: Unable to establish loopback connection, java.io.IOException: Unable to establish loopback connection]
at org.eclipse.jetty.server.Server.doStart(Server.java:383)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.mirth.connect.server.MirthWebServer.startup(MirthWebServer.java:350)
at com.mirth.connect.server.Mirth.startWebServer(Mirth.java:386)
at com.mirth.connect.server.Mirth.startup(Mirth.java:265)
at com.mirth.connect.server.Mirth.run(Mirth.java:154)
Suppressed: java.io.IOException: Unable to establish loopback connection
at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)
at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.nio.ch.PipeImpl.<init>(Unknown Source)
at sun.nio.ch.SelectorProviderImpl.openPipe(Unknown Source)
at java.nio.channels.Pipe.open(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.<init>(Unknown Source)
at sun.nio.ch.WindowsSelectorProvider.openSelector(Unknown Source)
at java.nio.channels.Selector.open(Unknown Source)
at org.eclipse.jetty.io.SelectorManager.newSelector(SelectorManager.java:380)
at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:94)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:244)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:398)
... 5 more
Caused by: java.net.SocketException: Permission denied: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at java.nio.channels.SocketChannel.open(Unknown Source)
at sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(Unknown Source)
... 28 more
Caused by: java.io.IOException: Unable to establish loopback connection
at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)
at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.nio.ch.PipeImpl.<init>(Unknown Source)
at sun.nio.ch.SelectorProviderImpl.openPipe(Unknown Source)
at java.nio.channels.Pipe.open(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.<init>(Unknown Source)
at sun.nio.ch.WindowsSelectorProvider.openSelector(Unknown Source)
at java.nio.channels.Selector.open(Unknown Source)
at org.eclipse.jetty.io.SelectorManager.newSelector(SelectorManager.java:380)
at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:94)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:244)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:398)
... 5 more
Caused by: java.net.SocketException: Permission denied: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at java.nio.channels.SocketChannel.open(Unknown Source)
at sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(Unknown Source)
... 28 more
WARN 2019-08-04 19:52:12,559 [Main Server Thread] com.mirth.connect.server.Mirth: Could not start web server
Did I miss something?
Thanks in advance.
Including the following regular expression breaks javascript transformation:
replace(/^\s**|\s**$/g,'');
Imported Issue. Original Details:
Jira Issue Key: MIRTH-25
Reporter: chrisl
Created: 2006-09-11T05:42:58.000-0700
The first transformation step will randomly get deleted from the transformer after switching screens from the transformer pane to the channel editor.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-26
Reporter: chrisl
Created: 2006-09-11T07:31:49.000-0700
When specifying a file writer's filename property, variables that are defined in the transformer should be able to be used.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-14
Reporter: chrisl
Created: 2006-09-07T13:16:54.000-0700
The HL7 spec expects CR (ascii 13) characters to deliminate segments of an HL7 message, however certain vendors only deliminate thier lines with \n (ascii 10). Mirth should stay compatabile with these vendors by allowing the option to specify the end of segment encoding character.
Imported Issue. Original Details:
Jira Issue Key: MIRTH-29
Reporter: chrisl
Created: 2006-09-12T14:05:54.000-0700
do you have any documentation how to create a new plugin or connector?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.